我有一本字典屬性叫周:MVC3 - HiddenFor字典值
public IDictionary<DayOfWeek, Day> Week { get; private set; }
而且我想通過自己的價值觀關閉以HiddenFor
(天)
@Html.HiddenFor(x => x.Week.Values)
它必須是一個模型的屬性,所以我不能做x.Week.Values.ToList();
我將如何去將字典值傳遞到Html.HiddenFor
?
我有一本字典屬性叫周:MVC3 - HiddenFor字典值
public IDictionary<DayOfWeek, Day> Week { get; private set; }
而且我想通過自己的價值觀關閉以HiddenFor
(天)
@Html.HiddenFor(x => x.Week.Values)
它必須是一個模型的屬性,所以我不能做x.Week.Values.ToList();
我將如何去將字典值傳遞到Html.HiddenFor
?
自從您使用HiddenFor
以來,我將假設您需要重新綁定表單上的字典值。要綁定一個字典視圖,你將需要做這樣的事情:
@foreach (var key in Model.Week.Keys)
{
Html.DisplayFor(model=>model.Week[key]);
}
字典中的每個值將被賦予它自己隱藏的輸入字段,名稱屬性: name="Week.{key here}
另一方面,如果您需要做的只是將模型中的數據發送到客戶端,以便您可以使用JavaScript對其進行操作,那麼您可能需要考慮將它作爲JSON寫入頁面。
<script type="text/javascript">
@Html.Raw(Json.Encode(Model.Week))
</script>
我會用:
@foreach (var key in Model.Week.Keys)
{
@Html.HiddenFor(model=>model.Week[key]);
}
的 '@' 的HTML似乎有必要對剃鬚刀進行輸出前的隱藏字段。
它輸出這樣的事情每個鍵:
<input data-val="true" data-val-number="The field Int32 must be a number."
data-val-required="The Int32 field is required." id="Week_5_" name="Week[5]"
type="hidden" value="3">
唔怪雖然這'@ Html.EditorFor(X => x.Week)'不通過他們去,但。知道爲什麼? –
我想它並不適合開箱即用,但如果您想要,您可以創建一個自定義編輯器 –