ASP.NET CORE Ajax post 视图模型的附加参数

ASP.NET CORE Ajax post additional paramaters with view model

在我的项目 (ASP.NET Core 2.2.MVC) 中,我正在尝试对视图模型执行 ajax post 附加参数。页面上的表单有一个 id='frmMain'.

我的 js 是这样的:

//post
var data = {
    model: $("#frmMain").serialize(),
    passtest: 'test'
};

$.ajax({
    type: 'post',
    url: url,
    data: JSON.stringify(data),
    dataType: 'json',
    success: function () {
    //alert('form was submitted');
}
}).done(function (result) {

    if (result.status === "success") {

        //some code here
    }
    } else {
        //some code here
    }
});

我的控制器操作如下所示:

public IActionResult DoSomething(MyModel model, string passtest)
{
    //some action code here
}

现在,post 有效,但在我的控制器操作中,只有 "model" 填充了数据。变量 "passtest" 为空。 "model"中也没有"passtest"。

我做错了什么?

注意:我找到了填充隐藏字段(并将它们添加到视图模型)的解决方法,但在 post 本身中简单地传递多个参数似乎更实用...

您可以使用查询符号将其附加到 url。

url = url + '?passtest=' + myVal

假设您的 myVal 包含特殊字符,例如 , / ? : @ & = + $ #

然后您想要对其进行编码,这样它们就不会被解析为 url 表示法的一部分:

url = url + '?passtest=' + encodeURIComponent(myVal)