我的数据库模型在字段名称中的列名称为“_”。 有没有办法在表单中显示时在Camel Case中显示这些值?喜欢 “BUSINESSNAME”
我正在使用带有Razor的asp.net MVC3
@Html.LabelFor(model => model.business_name)
答案 0 :(得分:5)
你能不能只使用DisplayAttribute?
答案 1 :(得分:5)
你需要一个新的metadataprovider,它可以从默认的继承,如下所示:
using System;
using System.Web.Mvc;
using System.Collections.Generic;
public class MyMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
var metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
if (metadata.DisplayName == null)
metadata.DisplayName = GetDisplayNameFromDBName(propertyName);
return metadata;
}
private string GetDisplayNameFromDBName(string propertyName)
{
return ...;
}
}
在global.asax中注册它,如下所示:
ModelMetadataProviders.Current = new MyMetadataProvider();
您只需提供GetDisplayNameFromDBName的实现,以便在给定属性名称的情况下提供正确的显示名称
答案 2 :(得分:1)
为什么不使用@ Html.Label(“商家名称”)?