【问题标题】:How to pass Array to MVC Controller with Jquery?如何使用 Jquery 将数组传递给 MVC 控制器?
【发布时间】:2016-10-28 17:49:31
【问题描述】:

我是开发 .Net MVC 5 应用程序的初学者。但是我在使用 Jquery 将数组或对象传递给控制器​​时遇到了一些问题。

我正在添加带有按钮的动态输入字段。我想将输入的数据传递给控制器​​。但我没能成功。

Html Section 是这样的;

        <div id='TextBoxesGroup'>
            <div id="TextBoxDiv1">
             <label>Textbox #1 : </label><input type='text' id='textbox1'>
            </div>
        </div>
        <input type='button' value='Add Button' id='addButton'>
        <input type='button' value='Remove Button' id='removeButton'>
        <input type='button' value='Get TextBox Value' id='getButtonValue'>

获取值按钮功能是这样的;

 $("#getButtonValue").click(function () {
            var list = new Array();
            for (i = 1; i < counter; i++) {
                list[i] = $('#textbox' + i).val();
                alert(list[i]);
            }
            var postData = { values: list };

            $.ajax({
                type: "POST",
                url: "/Surveys/PostQuestionAndOptions",
                data: postData,
                success: function (data) {
                    alert(data);
                },
                dataType: "json",
                traditional: true
            });
        });

即使我将“传统”设置为 true ,模型也是空的。

[HttpPost]
        public JsonResult PostQuestionAndOptions(string[] model)
        {
            return Json(true);
        }

谁能帮帮我?谢谢。

【问题讨论】:

  • 你能先提醒你的列表吗,因为数组索引从 0 开始。看起来一切正常。
  • 只需将方法参数更改为string[] values 即可。

标签: javascript jquery arrays asp.net-mvc asp.net-mvc-5


【解决方案1】:

你需要有一个强类型的对象。

JavaScript

$("#getButtonValue").click(function (e) {
    e.preventDefault();
    var list = []; 
    for (var i = 1; i < counter; i++) { 
        list.push($('#textbox' + i).val());
    } 
    var postData = { values: list }; 
    $.ajax({ 
        type: "POST", 
        url: "/Surveys/PostQuestionAndOptions", 
        data: postData, 
        success: function (data) { 
            alert(data); 
        }, 
        dataType: "json", 
        traditional: true 
    }); 
});

强类型对象

public MyValues {
    public list<string> values {get; set;}
}

控制器方法

[HttpPost] 
public JsonResult PostQuestionAndOptions(MyValues model) { 
    return Json(true, JsonRequestBehavior.AllowGet); 
}

【讨论】:

  • 对,它必须是控制器中的类型对象。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 2018-03-31
  • 1970-01-01
  • 2015-01-23
  • 2013-09-05
  • 1970-01-01
相关资源
最近更新 更多