1

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

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

4

2 回答 2

1

正如 Jose 所说,您的请求可能如下所示:

 $("#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>
于 2012-08-03T11:14:32.933 回答
0

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

$(form).submit(function()
{
    var ;
    $.ajax({
        type: "POST",
        url: "/Controller/Action",
        data: JSON.stringify(_yourArrayObject),
        success: function(data){
            alert(data.Result);
        },
        dataType: "json"
    });
})
于 2012-08-03T11:05:30.723 回答