只有Create和Edit页面用的
@Html.LabelFor(model => model.UnitName)
来显示display设定的中文名
其他页面没有model的部分比如index表头就直接显示字段名了,
<div class="display-label">UnitName</div>
这个怎么解决?我想要所有显示名称的地方都用中文定义的名字啊
不懂你的需求,你是要 DisplayName 显示中文,还是要那个自动生成的视图里的不是利用Model来设置的其他部分显示中文?
后则的话,除非你去改T4模板。 前者的话,DisplayName标签可做到。
就是因为DisplayName,Display设置了都不行才问的,你生成一下看看index页面表头
实体类加上dispalynameattribute
DisplayName试过了,没用
显示中文,什么意思????
在model 中为属性UnitName 如下设置不行的么?
[DisplayName("设定的中文名")]
public string UnitName{ get; set; }
都用过了,没用,你试试看
@eflay: index 页面 与model没有关联,index页面按照mvc的约定是读不到你在model中设置的DisplayName特性值的.. 之前看错你的需求了..
@jingjunfeng: 那有没有办法去反射获取Model的metatype里配的Display 的Name作为index页面的表头? 看了下模板里面直接用的是AssociationName 但是反射不太懂,tt模板里也不太会写,想办法通过改tt模板里面的方法来获取Display作为表头名
@eflay: 要不你用分部试图 在分部试图里面硬编码,这样比较简单些..
MVC3.0貌似没什么好办法,MVC4.0的模板里面用的是DisplayNameFor,生成出来就是动态的显示Display的内容了,然后再用模板改下生成样式,给力。