2014-03-27 14 views
2

我使用MVC4。我想设置许多textboxs为要求这样的:设置单个消息所需文本框在MVC 4

  public int Id { get; set; } 
     [Required] 
     public string Name { get; set; } 
     [Required] 
     public string LastName { get; set; } 
     [Required(ErrorMessage = "test")] 
     [StringLength(10,ErrorMessage = "کد ملی باید ده رقمی باشد",MinimumLength = 10)] 

所以我必须写为每个文本框一个错误信息。所以这很耗时。我怎样才能为MVC4中所有需要的文本框设置一条消息?

问候

回答

2

通过Overriding创建一个自定义需要属性现有需要属性如下:

public class RequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute 
{ 
    private string _propertyName; 

    public RequiredAttribute([CallerMemberName] string propertyName = null) 
    { 
     _propertyName = propertyName; 
    } 

    public string PropertyName 
    { 
     get { return _propertyName; } 
    } 

    private string GetErrorMessage() 
    { 
     //Provide your Error Message Here..   
    } 

    public override string FormatErrorMessage(string name) 
    { 
     //note that the display name for the field is passed to the 'name' argument 
     return string.Format(GetErrorMessage(), name); 
    } 
} 
+0

我有8个类在我的DomainModel .so我怎么能使用这个覆盖其他类? –

+0

@EA ..你需要所有的字段相同的错误信息?还是不同? –

+0

是的,我需要。所有字段都需要相同的错误 –

0

不为anytextbox和用户的ValidationSummary提供的ErrorMessage

1

我只会使用签名,您可以从资源文件中提取错误消息。你在一个地方设置错误消息,只是有你需要的属性这样的话是这个样子:

[Required(ErrorMessageResourceType = typeof(MyResources), ErrorMessageResourceName = "ErrorMessageForRequired")] 

下面是一个article这个从菲尔哈克。

+0

您能给我一个使用Resource!的例子吗? –

+1

我向您提供了一篇文章链接,讨论如何创建资源文件以及如何在模型中使用资源文件。 – JustinMichaels