use*_*526 4 asp.net-mvc razor razor-declarative-helpers
我在.NET 4.5 MVC应用程序中使用Razor和Data Annotations.这是一个视图模型:
[Required(ErrorMessage = "Title is required.")]
[Display(Name = "Title: *")]
public string Title { get; set; }
[Display(Name = "Comments:")]
public string Comments { get; set; }
Run Code Online (Sandbox Code Playgroud)
有没有办法删除那些显示属性并在生成的名称后面有冒号(冒号,空格,必填字段的星号)?在错误消息中,不应显示冒号.
您可以使用自己的自定义显示帮助程序(类似于LabelFor),或
如果你想要LabelFor:
<PropertyName> :
Run Code Online (Sandbox Code Playgroud)
当你有一个必需的属性
<PropertyName> : *
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用Custom DataAnnotationsModelMetadataProvider
public class CustomModelMetadataProvider : 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 (propertyName != null) {
metadata.DisplayName = (metadata.DisplayName ?? propertyName) + " : ";
if (attributes.OfType<RequiredAttribute>().Any())
metadata.DisplayName +=" * ";
}
return metadata;
}
}
Run Code Online (Sandbox Code Playgroud)
使用这个,你必须把
ModelMetadataProviders.Current = new CustomModelMetadataProvider()
Run Code Online (Sandbox Code Playgroud)
在 Application_Start()你的Global.asax.cs
现在,我不确定是否metadata.DisplayName在错误消息中使用...我让你测试!
| 归档时间: |
|
| 查看次数: |
1200 次 |
| 最近记录: |