在获取 Razor View 以呈现具有嵌入IEnumerable
的 ViewModel 时出现问题后,我遇到以下帖子:视图模型 IEnumerable<>属性从 post 方法返回 null(不绑定)?
我使用编辑器模板实现了建议的解决方案,但我的 View 只显示了嵌入式IEnumerable
中的第一个属性。我从上面的帖子中实现了两个解决方案,但是带有EditorFor
模板的解决方案对我不起作用。我的视图仅显示ID
属性。
有没有人有任何想法为什么编辑器模板的索引可能不适用于我的设置?我完全按照建议实现了它。
2 回答
要使用编辑器模板,请考虑以下提示:
您必须将模板放在 Views 文件夹中的 EditorTemplates 文件夹中。
你应该使用
EditorFor
HTML 帮助器调用适当的模板(当你有特定的模型要查看时,它会自动找到所需的模板,否则你必须提示引擎,无论是通过EditorFor
中的参数还是使用模型中的[UIHint]
属性.在扩展 ASP.NET MVC 的编辑器模板在
string
,DateTime?
等模板中使用简单模型要使用
IEnumerable
模型作为模板,请考虑EditorFor IEnumerable 与 TemplateName中可用的非常重要的提示。如果您的视图仅显示第一个项目,则您的模板不会在 EditorTemplates 文件夹中被选中。
在 EditorFor 扩展方法中定义模板,如下所示: