public ActionResult DoSomething()
{
return View("Index", new IndexModel { Foo = new List<string>() { "*" });
}
其中Index.cshtml的表单包含@Html.HiddenFor(m => m.Foo)
public ActionResult ProcessForm(IndexModel model)
{
}
在ProcessForm中,你的model.Foo包含一个字符串,其中包含:
System.Collections.Generic.List`1[System.String]
我很困惑......
答案 0 :(得分:5)
如果您在集合上运行ToString()
,那就是结果,就像HiddenFor
正在做的那样。你需要做一些特殊的事情才能将列表变成一个字符串。
这是一个快速而又脏的Linq语句,它将其转换为以逗号分隔的列表:
list.Aggregate("", (s,x) => string.IsNullOrEmpty(s) ? x : s + ", " + x);