如何使用 Jquery 将数组传递给 MVC 控制器? [英] How to pass Array to MVC Controller with Jquery?

查看:24
本文介绍了如何使用 Jquery 将数组传递给 MVC 控制器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

Html Section就是这样;

 

<div id="TextBoxDiv1"><label>Textbox #1 : </label><input type='text' id='textbox1'>

<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'>

Get Value 按钮功能就是这样;

 $("#getButtonValue").click(function () {var list = new Array();for (i = 1; i < counter; i++) {list[i] = $('#textbox' + i).val();警报(列表[i]);}var postData = { 值:列表 };$.ajax({类型:POST",url: "/Surveys/PostQuestionAndOptions",数据:postData,成功:功能(数据){警报(数据);},数据类型:json",传统:真实});});

即使我将 "traditional" 设置为 true ,模型也是空的.

[HttpPost]公共 JsonResult PostQuestionAndOptions(string[] 模型){返回 Json(true);}

谁能帮帮我?谢谢.

解决方案

您需要有一个强类型对象.

JavaScript

$("#getButtonValue").click(function (e) {e.preventDefault();变量列表 = [];for (var i = 1; i < counter; i++) {list.push($('#textbox' + i).val());}var postData = { 值:列表 };$.ajax({类型:POST",url: "/Surveys/PostQuestionAndOptions",数据:postData,成功:功能(数据){警报(数据);},数据类型:json",传统:真实});});

强类型对象

public MyValues {公共列表<字符串>值{得到;放;}}

控制器方法

[HttpPost]公共 JsonResult PostQuestionAndOptions(MyValues 模型) {返回 Json(true, JsonRequestBehavior.AllowGet);}

I am beginner to develope .Net MVC 5 application. But I have some problem with passing array or object to controller with Jquery.

I'm adding dynamically input fields with button. I want to pass input's data to controller. But I couldn't succeed.

Html Section is like that;

        <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'>

Get Value button function is like that;

 $("#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
            });
        });

Even I set "traditional" by true , the model is null.

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

Could any one help me ? Thank you.

解决方案

You need to have a strongly typed object.

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 
    }); 
});

Strongly typed object

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

Controller method

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

这篇关于如何使用 Jquery 将数组传递给 MVC 控制器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆