2012-09-06 61 views
0

嘿,StackOverflow愛好者。使用UnobtrusiveJavaScript時從jquery驗證中獲取消息

我正在嘗試將我的舊網站更新到最新版本的Asp.net MVC4。它以前是在MVC2上的,而在MVC2上,它允許我將jQuery和客戶端的東西與任何後端的東西分開。但我想用MVC4他們希望你有很多你的驗證東西直接綁定到你的模型等等。

但我有一個客戶端的jquery驗證腳本,以前工作得很好,我想知道如何讓它再次工作。具體來說,我有一個字段,如果用戶輸入超過4000個字符,將不會驗證。否則它不會被要求。下面是客戶端代碼,在MVC2工作過....

Comment: { 
    required: function (element) { 
    return $(element).val().length > 4000; 
    }, 
    maxlength: 4000 
} 

,如果驗證未通過,將要顯示的消息...

messages: { 
       ... 
       Comment: 'Why dont you stop attempting to put in more than 4000 characters? Thanks...' 
      } 

我如何可以做到這一點MVC四?爲了得到任何顯示在另一個領域,我注意到我需要一個比需要在我的模型現場放...

[Required(ErrorMessage = "Please select an Admit Date")] 
    public DateTime? AdmitDate { get; set; } 

有沒有寫一個需求功能的方式使得它在某些情況下,才需要?如果你知道我的意思,我寧願保留它的客戶端以保持我的擔憂。任何幫助,將不勝感激。

回答

1

您可以使用[Required][StringLength]來限制評論中的輸入。

[Required(ErrorMessage = "Please fill in a comment")] 
[StringLength(4000, ErrorMessage = "Why dont you stop attempting to put in more than 4000 characters? Thanks...")] 
public string Comment { get; set; } 

有條件的必要約束不包含在默認數據註釋中。處理'複雜'驗證的默認方式是在模型上實現IValidatableObject接口。

但是,由於您正在尋找客戶端解決方案,因此我們可以查看其他可能爲您解決此問題的框架。例如,MVC Foolproof Validation支持同樣適用於客戶端的[RequiredIf]屬性。

+0

男孩我想念只包括驗證插件和黑客入侵。 – SoftwareSavant