Asp.net core ASP.NET核心Ajax使用视图模型发布附加参数
在我的项目ASP.NET Core 2.2中。MVC我正在尝试使用视图模型的附加参数来完成一篇ajax文章。页面上的表单具有id='frmMain' 我的js看起来像这样:Asp.net core ASP.NET核心Ajax使用视图模型发布附加参数,asp.net-core,asp.net-ajax,Asp.net Core,Asp.net Ajax,在我的项目ASP.NET Core 2.2中。MVC我正在尝试使用视图模型的附加参数来完成一篇ajax文章。页面上的表单具有id='frmMain' 我的js看起来像这样: //post var data = { model: $("#frmMain").serialize(), passtest: 'test' }; $.ajax({ type: 'post', url: url, data: JSON.stringify(data), dat
//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
}
});
我的控制器操作如下所示:
//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 DoSomethingMyModel模型,字符串passtest
{
//这里有一些动作代码
}
现在,post可以工作了,但在我的控制器中,只有action模型充满了数据。变量passtest为空。模型中也没有passtest
我做错了什么
注意:我找到了一种解决方法,可以填充隐藏字段并将其添加到视图模型中,但在帖子中直接传递多个参数似乎更为实用…您可以使用查询符号将其附加到url url=url+'?passtest='+myVal 假设您的myVal包含特殊字符,如,/?:@&=+$ 然后,您希望对其进行编码,以便它们不会作为url符号的一部分进行解析:
url=url+'?passtest='+encodeURIComponentmyVal谢谢,这很有效。myVal是否可以包含特殊字符,如:'/\+@对于混合类型,您需要使用encodeURIComponentpart函数对url中包含特殊字符的部分进行编码。我已经更新了答案。