如果我有一个对象和视图:
public MyCustomerObject
{
public int Id {get;set;}
public string Label {get;set;}
Public string Value {get;set;}
}
@model IEnumerable<MyCustomObject>
@foreach (var item in Model)
{
@Html.LabelFor(m => item)
@Html.DisplayFor(m => item)
}
覆盖LabelFor<>
和DisplayFor<>
扩展程序的正确方法是什么,以允许我以默认方式处理MyCustomObject
,而不会影响其处理其他方式的能力类型应该是什么?
答案 0 :(得分:3)
在视图文件夹中创建名为DisplayTemplates
的文件夹。创建一个名为MyCustomObject.cshtml
的视图,其中MyCustomObject
为模型。现在,当您使用DisplayFor
时,MVC将使用此视图。 EditorFor
的计数相同,文件夹的名称应为EditorTemplates
。
LabelFor
没有模板选项。
有关更多信息,请参阅Scott Hanselman撰写的this blogpost。