【发布时间】:2017-12-22 11:12:03
【问题描述】:
我想知道当我动态拉入数据以填充我的视图时,如何正确使用 HTML 帮助器方法 HiddenFor。
在尝试使用 HiddenFor 之前,我使用以下代码使用常规隐藏元素:
@Html.Hidden("Answers["+i+"].FormEntryId", entry.FormEntryId)
这会产生以下 HTML:
<input id="Answers_0__FormEntryId" name="Answers[0].FormEntryId" type="hidden" value="d318afa2-42ba-4205-9f8a-9d7e6ad59ea4">
如您所见,它非常脆弱,因为它依赖于字符串文字。然后我和另一位开发人员决定尝试使用 HiddenFor,如下所示:
@Html.HiddenFor(x => x.Answers[i].FormEntryId, entry.FormEntryId)
这会产生以下 HTML,注意空值字段:
<input data-val="true" data-val-required="The FormEntryId field is required." id="Answers_0__FormEntryId" name="Answers[0].FormEntryId" type="hidden" value="">
x 是我们 ViewModel 的替身。然而,一旦我们切换到这种方法,我们遇到了一个障碍,我们的 id 值没有被填充。因此,我想知道使用 HiddenFor 的正确方法是什么,以及在处理动态视图时是否可以这样做。视图模型如下所示:
【问题讨论】:
标签: c# .net unobtrusive-validation