【问题标题】:Passing values from model to view via AdditionalMetadata通过 AdditionalMetadata 将值从模型传递到视图
【发布时间】:2012-10-15 13:41:21
【问题描述】:

在我的模型中,我有一个用 AdditionalMetadata 属性装饰的属性,用于传递我想要呈现的帮助文本:

[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 以来行为发生变化?

我是否需要执行任何其他步骤才能将自定义值从模型传递到视图?

谢谢

【问题讨论】:

    标签: asp.net-mvc attributes data-annotations scaffolding


    【解决方案1】:

    最终设法解决了这个问题。最终我不得不打电话

    prop.AdditionalValues["HelpText"])
    

    prop 类型为 ModelMetadata,同时枚举集合:

    <% foreach(var prop in ViewData.ModelMetadata.Properties.Where(md => md.ShowForEdit && !ViewData.TemplateInfo.Visited(md))){ %>
    

    不知道为什么它们没有显示在 ViewData.ModelMetadata 对象上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      相关资源
      最近更新 更多