【问题标题】:Storing a list in Hidden field leads to weird results在隐藏字段中存储列表会导致奇怪的结果
【发布时间】:2011-03-03 22:19:38
【问题描述】:
public ActionResult DoSomething()
{
return View("Index", new IndexModel { Foo = new List<string>() { "*" });
}

其中 Index.cshtml 有一个包含 @Html.HiddenFor(m =&gt; m.Foo) 的表单

public ActionResult ProcessForm(IndexModel model)
{
}

在 ProcessForm 中,您的 model.Foo 包含一个字符串,内容如下:

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

我很困惑……

【问题讨论】:

    标签: asp.net-mvc-3 razor hidden-field


    【解决方案1】:

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

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

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

    【讨论】:

    • 我可能会转换为 JSON,但不幸的是你的回答是有道理的.. sigh
    • 为什么不直接使用 string.Join(",", list)?
    • 已经一年了,但如果我没记错的话,你不想传递空值或空值。如果加入会这样做,我同意它会更简单。
    猜你喜欢
    • 2010-11-14
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2018-06-28
    • 1970-01-01
    • 2014-10-13
    相关资源
    最近更新 更多