2012-08-03 153 views
1

我在我的视图中有一个表单page.it包含5个文本框,一个搜索按钮。用户在文本框中输入值(输入所有字段不是必需的),然后单击搜索按钮,我必须将其存储在数组中并将其传递给控制器​​,并且根据搜索结果,我必须显示搜索结果。将数组值从视图传递给控制器​​使用ajax

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

+0

将表单动作指向您的控制器的一个动作。 – jose 2012-08-03 10:54:06

+0

感谢您的答复,如何将这些数组值从视图传递到控制器 – steve 2012-08-03 10:56:51

回答

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" 
    }); 
}) 
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> 
+0

我已经以这种方式实现了,我在我的控制器中使用了foreach循环来输入值为空或不是。当我在文本框中输入一个值并且点击搜索按钮,在foreach按钮处抛出NullReference Exception。 – steve 2012-08-03 11:37:01

+0

我编辑了code.it工程100%perfect.please检查。 – 2012-08-03 13:55:51

+0

不要忘记标记为答案,如果是的话。 – 2012-08-17 05:55:45

相关问题