【问题标题】:Can you pass an array from javascript to asp.net mvc controller action without using a form?您可以在不使用表单的情况下将数组从 javascript 传递到 asp.net mvc 控制器操作吗?
【发布时间】:2011-04-10 01:18:55
【问题描述】:

我知道,如果我有一个包含多个同名元素的表单,我可以使用它来绑定到数组,但是有没有办法将数组从 javascript 函数传递到 ASP.NET MVC 控制器操作而无需使用表格?

【问题讨论】:

    标签: javascript asp.net-mvc arrays binding


    【解决方案1】:

    是的!使用 XmlHttpRequests,您可以发送 HTTP GET 或 POST 命令。

    许多像 jQuery 这样的 javascript 库使这变得非常容易。例如在 jQuery 中你可以这样做..

    <input name="myField" value="1" />
    <input name="myField" value="2" />
    <input name="myField" value="3" />
    <button id="send">Send data to server</button>
    

    这是javascript代码

    $('#send').click(function(e) {
      e.preventDefault();
    
      var postParams = {
        myField : []
      };
    
      $("input[name='myField']").each(function() {
        postParams.myField.push($(this).val());
      });
    
      $.post("/controller/action", postParams);
      return false;
    });
    

    这应该发送一个带有以下参数的 POST 请求:

    myField=1,2,3
    

    【讨论】:

    • 谢谢,这行得通,但我必须添加 jquery.ajaxsettings.traditional 才能使完整的端到端工作
    • @Ieora:嗨,你的控制器签名参数是什么样的?方法(字符串值)还是方法(字符串 [] 值)?
    • @JaJ,方法(字符串值)很好,但请确保将 postParams 更改为值,或者您可以使用方法(字符串 postParams)
    • Request.QueryString 对象中应该也可以使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2010-12-25
    相关资源
    最近更新 更多