3
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]

我感到很困惑...

4

1 回答 1

5

如果你ToString()在你的收藏上运行,这就是结果,就像HiddenFor正在做的那样。您需要做一些特殊的事情才能将列表变成字符串。

这是一个快速而肮脏的 Linq 语句,它将把它转换成一个逗号分隔的列表:

list.Aggregate("", (s,x) => string.IsNullOrEmpty(s) ? x : s + ", " + x);
于 2011-03-03T22:28:32.863 回答