.net – 如何通过@ Html.EditorFor将ViewData的值传递给编辑器模板

前端之家收集整理的这篇文章主要介绍了.net – 如何通过@ Html.EditorFor将ViewData的值传递给编辑器模板前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在视图中针对@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传递给此EditorTemplate.

解决方法

经过一番搜索后,发现了以下堆栈溢出的答案,用于迭代嵌套属性.我无法使转换为“动态”工作,但使用反射正确检索嵌套的匿名对象.
https://stackoverflow.com/a/13981462/1046155

但是,如果您只想传递HTML属性,则可以按顺序指定它们:

@Html.EditorFor(x => survey.Questions,new { PersonId = 1000,PersonName = "John",PersonAge=10,etc... })

并通过以下方式在编辑器中访问它们

<div>
     @ViewData["PersonId"]
     @ViewData["PersonName"]
     @ViewData["PersonAge"]
     etc...
</div>

猜你在找的HTML相关文章