在强类型 View 中反对 @model System.Tuple<Person, List<Survey>>
我在 for-each 循环中使用:
@Html.EditorFor(x => survey.Questions)
在“调查”中提出问题。它运行完美。
现在我还想将附加数据传递到自定义编辑器模板。我做了:
@Html.EditorFor(x => survey.Questions, new { htmlAttributes = new { PersonId = 1000 } })
然后在 Edtior 模板中我想引用这个 PersonId
并显示它。
这是我制作的编辑器模板(用于问题的快捷方式):
@using WebApplication2.Models
@model Question
<div>
@ViewData["PersonId"]
</div>
但什么也没显示。
如何正确通过PersonId = 1000
到此编辑器模板。
最佳答案
经过一番搜索后,发现了以下用于迭代嵌套属性的堆栈溢出答案。我无法使强制转换为“动态”工作,但使用反射正确检索了嵌套的匿名对象。 https://stackoverflow.com/a/13981462/1046155
但是,如果您决定仅使用 HTML 属性,则可以在动态对象中指定它们:
@Html.EditorFor(x => survey.Questions, new { PersonId = 1000, PersonName = "John", PersonAge=10, etc... })
并使用@ViewData在编辑器中访问它们:
<div>
@ViewData["PersonId"]
@ViewData["PersonName"]
@ViewData["PersonAge"]
etc...
</div>
关于.net - 如何通过 @Html.EditorFor 将 ViewData 的值传递给编辑器模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631581/