首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将多个参数从ajax调用传递到MVC控制器

如何将多个参数从ajax调用传递到MVC控制器
EN

Stack Overflow用户
提问于 2013-11-25 21:06:02
回答 5查看 126.6K关注 0票数 23

我有如下所示的控制器:

代码语言:javascript
复制
public ActionResult Save(string input, string name) {
    //Some code
    return PartialView();
}

我需要一个对此控制器方法的ajax调用,并传递两个参数input和value

我的ajax调用如下所示:

代码语言:javascript
复制
$.ajax({
    url: '/Home/Save',
    type: 'POST',
    async: false,
    dataType: 'text',
    processData: false,
    data: "input=" + JSON.stringify(data) + "&name =" + $("#name").val(),
    success: function (data) {
    }
});

我无法将值传递给name参数。name参数中的值正在变为null。请帮帮我..提前感谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-25 21:23:07

您正在进行HTTP POST,但试图使用GET查询字符串语法传递参数。在POST中,数据作为命名参数传递,并且不使用param=value&foo=bar语法。使用jQuery的ajax方法可以创建一个带有命名参数的javascript对象,如下所示:

代码语言:javascript
复制
$.ajax({
  url: '/Home/SaveChart',
  type: 'POST',
  async: false,
  dataType: 'text',
  processData: false,    
  data: { 
      input: JSON.stringify(IVRInstant.data), 
      name: $("#wrkname").val()
  },
  success: function (data) { }
});
票数 29
EN

Stack Overflow用户

发布于 2017-02-03 17:17:58

除了@xdumain发布的帖子之外,我更喜欢在ajax调用之前创建数据对象,这样您就可以对其进行调试。

代码语言:javascript
复制
var dataObject = JSON.stringify({
                    'input': $('#myInput').val(),
                    'name': $('#myName').val(),
                });

现在在ajax调用中使用它

代码语言:javascript
复制
$.ajax({
          url: "/Home/SaveChart",
          type: 'POST',
          async: false,
          dataType: 'json',
          contentType: 'application/json',
          data: dataObject,
          success: function (data) { },
          error: function (xhr) { }            )};
票数 5
EN

Stack Overflow用户

发布于 2016-08-15 23:30:42

我从这个问题中得到了帮助。

jquery get querystring from URL

所以让我们看看我们将如何使用这个函数

代码语言:javascript
复制
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

现在只需在Ajax call中使用它

代码语言:javascript
复制
"ajax": {
    url: '/Departments/GetAllDepartments/',                     
    type: 'GET',                       
    dataType: 'json',                       
    data: getUrlVars()// here is the tricky part
},

以上就是全部内容,但是如果您想知道how to use this functionnot send all the query string parameters返回到actual answer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20193888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档