使用ajax将值数组从视图传递到控制器

时间:2012-08-03 10:45:24

标签: ajax asp.net-mvc-3 visual-studio-2010

我的视图页面中有一个表单。它包含5个文本框,一个搜索按钮。用户在文本框中输入值(输入所有字段不是必需的),然后单击搜索按钮,我必须存储的值它在一个数组中并传递给控制器​​,根据搜索结果,我必须显示那些搜索记录的结果。

我能够将搜索到的值存储在数组中,现在我想知道如何将此数组传递给控制器​​以及如何在控制器中访问这些值。

2 个答案:

答案 0 :(得分:1)

如何提到的那样,你的要求可能如下:

 $("#submit").click(function () {
        var searchData = new Array();
        $(".search-input").each(function () {
            searchData.push($(this).attr('value'));
        });

        $.ajax({
            type: "POST",
            url: "/Home/Index",
            data: {"searchData"  : searchData},
            success: function (data) {
                // do something on success
            },
            traditional: true,
            dataType: "json"
        });
        return false;
    });

您的控制器操作可能是:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index([Bind(Prefix="searchData")] List<string> searchData)
    {
        return Index();
    }

并且您的表单必须有这样的标记:

<form id="myform">
       <input type="text" class='search-input' />
       <input type="text" class='search-input' />
       <input type="text" class='search-input' />
       <input type="text" class='search-input' />
       <input type="submit" id="submit" />
</form>

答案 1 :(得分:0)

使用ajax。如果jQuery是一个选项,你可以写这样的东西

$(form).submit(function()
{
    var ;
    $.ajax({
        type: "POST",
        url: "/Controller/Action",
        data: JSON.stringify(_yourArrayObject),
        success: function(data){
            alert(data.Result);
        },
        dataType: "json"
    });
})