2014-03-27 44 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