【问题标题】:asp mvc how to passs multi selected value to controllerasp mvc如何将多选值传递给控制器
【发布时间】:2011-09-25 00:52:05
【问题描述】:

嗨,朋友,我想将多选值视图传递给控制器​​,但我的视图只传递单选,我的代码在这里 公共行动结果索引() {

        var location = new[]{

                  "select","Hyderabad","Tirupati","Vijayawada","Vishakapatnam","Itanagar","Dispur",          
"Guwahati","Raipur","Goa","Ahmedabad","Bharuch",
         "Godhra","Jamnagar","Kheda","Rajkot","Surat","Vadodara","Faridabad","Gurgaon","Shimla","Dra  
 ss","Hiranagar","Poonch","Dhanbad","Ranchi","Bangalore","Hassan","Hubli","Karwar","Mangalore","Mysore","Udupi","Alappuzha","Kannur",
"Kochi","Kollam","Kottayam","Kozhikode","Palakkad","Pathanamthitta","Thiruvananthapuram","Thrissur","Bhopal","Indore","Aurangabad", 
"Mumbai","Nagpur","Nasik","Pune","Thane",
"Imphal","Shillong","Aizawl","Kohima","Bhubaneswar","Rourkela","Amritsar","Chandigarh","Jalandhar","Ludhiana","Jaipur","Jodhpur","Udaipur","Gangtok","Chennai","Coimbatore","Karur","Madurai","Thirunelveli","Trichi","Agartala","Delhi"    ,"Pondicherry","Allahabad","Lucknow","Varanasi","Kanpur","Durgapur","Kharagpur","Kolkata"

                };
        var Location = from d in location orderby d ascending select d;

        ViewData["Location"] = new MultiSelectList(Location);

查看表单代码

<% using(Html.BeginForm("candidatesearch","Process",FormMethod.Post)){ %>
<%:Html.ListBox("location", ViewData["Location"] as MultiSelectList)%><br />
<input id="location" type="submit" value ="Search"/>

另一个动作方法是

    public ActionResult candidatesearch(string location )
   {
 string rg = "";
         string[] candidatelocation = location.Split(',');
                for (int i = 0; i <= candidatelocation.Length;i++ )
                {
                     rg=rg+candidatelocation[i];

                }
                Response.Write(rg);
}

但是这个控制器只得到一个值我可以选择多个值

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    你可以用上面的答案代替

           public ActionResult candidatesearch(FormCollection formValues )
             {
    
                  string[] location = formvalues["Your_ListBox_value"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
    
              }
    

    如果您想从控制器的视图中访问许多表单值,这将更加有用。使用 Firebug 查看为您的 ListBox、Checkboxes 等生成的 ID。如果您觉得此答案有用,请将其标记为答案,以便其他人受益。

    【讨论】:

      【解决方案2】:

      改变

      public ActionResult candidatesearch(string location )
      

      到

      public ActionResult candidatesearch(string[] location )
      

      列表中的每一项都应该是数组中的一个索引。然后,您可以这样做,而不是拆分:

      foreach(var item in location)
      {
          //do something with item
      }
      

      希望这会有所帮助。

      【讨论】:

      • 只记得选择作为答案:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2020-09-02
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多