在我的模型中,我有一个使用AdditionalMetadata属性修饰的propety来传递我想要呈现的帮助文本:
[AdditionalMetadata("HelpText", "help text goes here")]
在我的EditorTemplate(/views/shared/editorTemplates/Object.ascx)中,然后检查是否设置了此值:
<% if (ViewData.ModelMetadata.AdditionalValues.ContainsKey("HelpText"))
{ %>
<span class='editor-help'>
<%= ViewData.ModelMetadata.AdditionalValues["HelpText"].ToString()%>
</span>
<% } %>
但是,当我在ViewData.ModelMetadata.AdditionalValues上放置一个断点时,它总是为空,即使我在正确的字段上打破并且属性肯定是设置的。我正在使用MVC4,以防自MVC3以来行为发生了变化?
我需要做任何其他步骤才能将自定义值从模型传递到视图吗?
由于
答案 0 :(得分:0)
最终管理解决这个问题。最终我不得不打电话给
prop.AdditionalValues["HelpText"])
其中prop是ModelMetadata类型,同时枚举集合:
<% foreach(var prop in ViewData.ModelMetadata.Properties.Where(md => md.ShowForEdit && !ViewData.TemplateInfo.Visited(md))){ %>
不确定为什么他们没有在ViewData.ModelMetadata对象上显示。