将多选列表框值传递给控制器​​

时间:2015-05-21 11:28:45

标签: asp.net-mvc asp.net-mvc-4 formcollection

我有一个ListBox,它有很多列表项,其间有逗号,例如abc,dce和cdf,dfe .....等等。现在,如果我选择多个listitem并尝试从控制器FormCollection参数中收集它,我将获得逗号分隔字符串的列表,例如" abc,dce,cdf,dfe"但我需要这样的" abc,dce"," cdf,dfe"等等。

我有一个解决方案是将另一个参数作为List<string> ListBoxId来解决我的问题。

现在,我只是想知道有没有办法使用FormCollection本身并获得预期的结果。

请告知。

1 个答案:

答案 0 :(得分:0)

  

现在,我只是想知道有没有办法使用FormCollection   本身并获得预期的结果。

虽然我不相信FormCollection是处理这个问题的正确方法,但这是你可以做的:

[HttpPost]
public ActionResult YourPostAction(FormCollection fc)
{
  var listvals = fc["stocks"];
  string[] splitVals = listvals.Split(new char[] { ',' });

  // do something with each value from the fc-list
  foreach (var str in splitVals)
  {
    ...
  }
}

基本上我们采用FormCollection列表并根据“逗号”分隔符将其拆分。从那里,我们得到一个你可以使用的字符串数组。