在隐藏字段中存储列表会导致奇怪的结果

发布于 2024-10-20 05:20:11 字数 441 浏览 0 评论 0原文

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]

我很困惑...

public ActionResult DoSomething()
{
return View("Index", new IndexModel { Foo = new List<string>() { "*" });
}

where Index.cshtml has a form that contains @Html.HiddenFor(m => m.Foo)

public ActionResult ProcessForm(IndexModel model)
{
}

Inside the ProcessForm your model.Foo contain a single string which reads:

System.Collections.Generic.List`1[System.String]

I am so confused...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年慕年 2024-10-27 05:20:11

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

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

list.Aggregate("", (s,x) => string.IsNullOrEmpty(s) ? x : s + ", " + x);

That's the result if you run ToString() on your collection, like HiddenFor is doing. You'll need to do something special to make the list into a string.

Here's a quick and dirty Linq statement that will convert it into a comma-separated list:

list.Aggregate("", (s,x) => string.IsNullOrEmpty(s) ? x : s + ", " + x);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文