UIHint无法在模型DisplayTemplate下工作

时间:2014-06-27 16:23:15

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 display-templates asp.net-mvc-uihint

我有一个模型MyModel

  

public class MyModel { [UIHint("Str")] public string Name {get;set;} }

在视图中,我使用

渲染模型
  

@Html.DisplayForModel("SomeTemplate")

因此,模型使用SomeTemplate作为DisplayTemplate。

因此UIHint没有在SomeTemplate中呈现。

是否有任何解决方案可以在另一个DisplayTemplate中呈现UIHint,或者根本不可能,

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些不一致之处。

首先,UIHint用于定义显示模板的名称以呈现给定属性,而不是在呈现的输出中添加字符串。

其次,DisplayForModel的参数不是显示模板的名称(根据模型名称的约定自动选择,或使用UIHint定义)

所以你能做的是: 假设您的模型类名为MyClass

  1. 在DisplayTemplates文件夹下创建名为MyClass.cshtml的显示模板

  2. 添加" Str"在模板内

  3. 调用不带参数的DisplayForModel(假设当前视图中的模型是相同的MyClass)

  4. 如果我误解了某些内容,请指出