我的控制器:
[HttpPost]
public IActionResult UserRoleChanged(string roleName,string userName)
{
var a = roleName;
var b = userName;
return RedirectToAction("UserManager");
}
视图中的脚本:
if (window.confirm('Are you sure that you want to change role?')) {
jQuery.ajax({
type: "POST",
url: "@Url.Action("UserRoleChanged", "DashBoard")",
dataType: 'json',
data: { 'roleName': this.text, 'userName': 'SomeName'},
cache: false,
success: function (data){
window.location.href = data;
},
failure: function (data) {
}
})};
当我在上面运行脚本时,UserRoleChanged操作不会调用。如果我尝试从ajax中的数据中删除userName变量,则UserRoleChanged操作方法将调用而不会出现任何问题。如何将多个数据传递给控制器?我的代码出了什么问题?
答案 0 :(得分:1)
从ajax中删除dataType: 'json'
,然后重试。当您尝试将服务器端的值作为普通变量时,因此此处不需要dataType: 'json'
。
答案 1 :(得分:0)
您可以创建具有相同属性的模型并将其作为参数传递。这是一个很好的做法。
看起来像这样。
public class User
{
public string RoleName { get; set; }
public string UserName { get; set; }
}
json看起来像这个例子
{
"RoleName" : "somename",
"UserName" : "somename"
}