MVC3 – HiddenFor字典值

我有一个名为Week的字典属性:

public IDictionary Week { get; private set; } 

而我正试图将其值传递给HiddenFor (Days)

 @Html.HiddenFor(x => x.Week.Values) 

它必须是Model的属性,所以我不能做x.Week.Values.ToList();

我如何将字典值传递给Html.HiddenFor

好吧,因为您使用HiddenFor ,我将假设您需要在表单post上重新绑定字典的值。 要将Dictionary绑定到视图,您需要执行以下操作:

 @foreach (var key in Model.Week.Keys) { Html.DisplayFor(model=>model.Week[key]); } 

字典中的每个值都将被赋予其自己的隐藏输入字段,其名称为: name="Week.{key here}

另一方面,如果您需要做的就是将模型中的数据发送到客户端,以便您可以在JavaScript中执行某些操作,您可能希望将其作为JSON写入页面。

  

我会用:

 @foreach (var key in Model.Week.Keys) { @Html.HiddenFor(model=>model.Week[key]); } 

Html之前的’@’似乎是剃刀输出隐藏字段所必需的。

它为每个键输出类似的内容: