Yod*_*oda 7 .net asp.net-mvc viewdata razor
在视图中强类型视图 @model System.Tuple<Person, List<Survey>>
我在for-each循环中使用:
@Html.EditorFor(x => survey.Questions)
Run Code Online (Sandbox Code Playgroud)
在"调查"中提出问题.它完美无瑕.
现在我还想将其他数据传递给自定义编辑器模板.我做了:
@Html.EditorFor(x => survey.Questions, new { htmlAttributes = new { PersonId = 1000 } })
Run Code Online (Sandbox Code Playgroud)
然后在Edtior模板中我想引用它PersonId并显示它.
这是我制作的编辑模板(问题用途的快捷方式):
@using WebApplication2.Models
@model Question
<div>
@ViewData["PersonId"]
</div>
Run Code Online (Sandbox Code Playgroud)
但没有任何表现.
如何正确传递PersonId = 1000给此EditorTemplate.
小智 16
经过一番搜索后发现了以下堆栈溢出的答案,用于迭代嵌套属性.我无法使转换成"动态"工作,但使用反射正确检索嵌套的匿名对象. /sf/answers/978702371/
但是,如果您只想传递HTML属性,则可以按顺序指定它们:
@Html.EditorFor(x => survey.Questions, new { PersonId = 1000, PersonName = "John", PersonAge=10, etc... })
Run Code Online (Sandbox Code Playgroud)
并通过以下方式在编辑器中访问它们
<div>
@ViewData["PersonId"]
@ViewData["PersonName"]
@ViewData["PersonAge"]
etc...
</div>
Run Code Online (Sandbox Code Playgroud)
尝试:
@ViewData["htmlAttributes"]["PersonId"]
Run Code Online (Sandbox Code Playgroud)
外部匿名对象是填充的ViewData。不过,如果您使用上述内容,则需要注意ViewData["htmlAttributes"]在尝试引用“PersonId”之前检查它是否确实存在。
| 归档时间: |
|
| 查看次数: |
13371 次 |
| 最近记录: |