ajax发布请求与多个参数

时间:2017-09-11 08:53:02

标签: javascript c# jquery ajax model-view-controller

我的控制器:

[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操作方法将调用而不会出现任何问题。如何将多个数据传递给控制器​​?我的代码出了什么问题?

2 个答案:

答案 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"
}