我有一个具有相同类型属性的模型类(用于创建层次结构):
declare $found int;
set $found = null;
set $found= (select id FROM table_name WHERE value = "value1" and name = "primary" limit 1);
if ($found is null) then
SELECT * FROM table_name WHERE value = "value1" and name = "secundary";
else
SELECT * FROM table_name WHERE value = "value1" and name = "primary";
end if;
在我的public class OrganizationalChart : Model
{
public Guid? ParentId { set; get; }
public virtual OrganizationalChart Parent { set; get; }
public string Name { set; get; }
}
视图文件中:
Razor
这两行显然都打印@Html.DisplayFor(modelItem => item.Name)
@Html.DisplayFor(modelItem => item.Parent.Name)
。使用Name
时情况相同。
我希望的功能是能够为当前对象的[Display(Name="Role Name")]
属性和父对象的Name
属性设置不同的显示名称。
有没有办法在不使用自定义Name
代码的情况下执行此操作?
答案 0 :(得分:1)
没有。无法覆盖子实例上的显示名称。但是,根据您的使用情况,可能有选项。例如,如果您使用Html.LabelFor
,则会使用一个参数来指定标签文字:
@Html.LabelFor(modelItem => item.Name)
@Html.LabelFor(modelItem => item.Parent.Name, "Parent Name")
Html.DisplayNameFor
在此上下文中使用没有意义,因为它只是输出一个简单的字符串(显示名称)。结果,没有任何“自定义HTML”;你可以硬编码你想要的名字。 Html.DisplayFor
根本不显示属性名称,因此我不确定您对此有何期待。