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

Razor页面向Action方法传值时应用ID始终为0问题求助

问题核心原因

  1. AJAX请求的参数格式错误,直接传递纯数值未指定参数名,后端模型绑定器无法匹配到对应入参,因此取默认值0
  2. dataType配置错误,jQuery的dataType用于指定预期的服务端返回值类型,不支持int这类基础类型值
  3. 若使用Razor Pages框架(你的方法命名OnPostDeleteAsync符合Razor Pages规范),默认开启POST请求防伪令牌校验,未传递令牌也可能导致参数绑定异常

修改方案

1. 调整前端AJAX代码

$(function () {
    var applicationID;

    console.log("Document Ready starting....");

    $(document).on("click", "#modalDeleteButtonX", function (event) {
        console.log("applicationID to Delete: " + applicationID);

        $.ajax({
            type: "POST",
            url: "@Url.Action("Delete", "Applications")",
            // 调整为键值对格式,键名和后端参数名完全匹配
            data: { applicationId: applicationID },
            // 新增防伪令牌头(Razor Pages必须,MVC按需开启)
            headers: {
                "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val()
            },
            // 移除错误的dataType配置,jQuery会自动识别返回值类型
            success: function (data) {
                console.log("success");
                // 按需添加删除成功后的逻辑,比如刷新列表或者移除对应DOM
                location.reload();
            },
            failure: function (response) {
                console.log("failure");
            },
            error: function (response) {
                console.log("error: " + response.responseText);
            }
        });

    });

    $('#modal-delete').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget);
        applicationID = button.data("id");
        $('#ItemToDelete').val(applicationID);
    });

    console.log("Document Ready finished....");
});

同时在页面(Index.cshtml或者分部视图)任意位置添加防伪令牌生成代码:

@Html.AntiForgeryToken()

2. 后端代码可选调整

如果调整前端后参数依然绑定失败,给入参添加[FromForm]标记强制从表单域取值:

public IActionResult OnPostDeleteAsync([FromForm] int applicationId)
{
    if (applicationId == 0)
        return Page();

    int affectedRows = _applicationRepository.DeleteApplication(applicationId);
    // 按需调整返回结果,比如删除成功后重定向到列表页
    return RedirectToPage("Index");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:51:03