You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.Net Core 6 Razor Pages中$.ajax请求404问题排查及路径咨询

ASP.NET Core 6 Razor Pages AJAX POST 404问题排查与正确路径

问题根源回顾

你遇到的404错误核心原因是应用部署的根路径不是域名根目录,IIS Express设置的应用URL是localhost:64373/Lab,所有请求路径都需要带上/Lab前缀,之前的URL都遗漏了这部分,导致路由无法匹配到目标处理方法。

排查此类路径问题的方法

  • 确认应用根路径:
    1. 查看Properties/launchSettings.json文件,找到iisSettings下的applicationUrl,确认完整的根路径(比如你的是https://localhost:64373/Lab)。
    2. 在浏览器开发者工具的Network标签里,查看请求的完整URL,对比实际应该请求的路径,就能快速发现前缀缺失的问题。
  • 验证路由规则:
    Razor Pages的handler方法路由规则是:{根路径}/{页面相对路径}?handler={方法名(去掉OnPost/OnGet前缀)}。比如你的OnPostUpdateList方法,对应的handler名称是UpdateList。
  • 避免硬编码路径:
    不要直接写死URL,优先用Razor的URL辅助方法生成路径,自动适配根路径。

正确的请求路径写法

方法1:使用Url.Page生成正确路径(推荐)

在Razor视图里,用Url.Page方法生成带根路径的URL,自动处理Lab前缀:

$.ajax({
    type: "POST",
    url: '@Url.Page("/PCL/PCL_Index", "UpdateList")',
    data: { listId: listId, itemName: itemName, isRemoving: isRemovingChecked },
    success: function (result) {
        if (result.success) {
            console.log(result);
        }
        else {
            alert("Error: " + result.errorMessage);
        }
    },
    error: function (xhr, status, error) {
        alert(error);
    }
});

解释:

  • /PCL/PCL_Index是页面的相对路径(对应\Pages\PCL\PCL_Index.cshtml)。
  • "UpdateList"是handler名称,对应后台的OnPostUpdateList方法(去掉OnPost前缀)。

方法2:手动补全根路径

如果要硬编码路径,必须加上/Lab前缀:

url: "/Lab/PCL?handler=UpdateList"

或者相对路径写法(适合当前页面在PCL目录下的情况):

url: "?handler=UpdateList"

额外注意事项

  • 虽然你加了[IgnoreAntiforgeryToken],但生产环境建议保留防伪验证,在AJAX请求里带上防伪令牌:
    在视图里添加:
    @Html.AntiForgeryToken()
    
    然后AJAX请求里加入:
    headers: {
        RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val()
    }
    
  • 后台方法建议返回IActionResult或JsonResult,方便返回状态和数据:
    public IActionResult OnPostUpdateList(int listId, string itemName, bool isRemoving)
    {
        // 业务逻辑处理
        return Json(new { success = true });
    }
    

内容的提问来源于stack exchange,提问作者DeveloperDan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:40:55