2013-12-10 71 views
0

我正在使用jQuery的Unobtrusive進行驗證數據的asp.net mvc數據驗證。ASP.NET MVC數據驗證

public class Register 
{ 
    [Required] 
    public string Name { get; set; } 

    [Required(ErrorMessage = "must not be empty")] 
    public string Surname { get; set; } 

    [EmailAddress(ErrorMessage = "please enter a valid email address")] 
    [Required] 
    public string Email { get; set; } 
} 

在表單發佈之前,jquery檢查驗證並在驗證摘要區域列出錯誤。

我的問題是;

我不想在所需的屬性上顯示錯誤,我只想繪製textarea或任何紅色 - 這是默認行爲與錯誤消息。

要隱藏錯誤列表我用

.validation-summary-errors ul{ 
    display: none; 
} 

這個CSS,但它隱藏了所有的驗證錯誤,而不僅僅是要求的。我如何才能實現顯示所有錯誤,除了必需的錯誤?

注:

[Required(ErrorMessage = null)] 

[Required(ErrorMessage = "")] 

不起作用

+0

如果您在頁面中有@ Html.ValidationSummary(),請將其刪除並嘗試。 –

+0

它完全刪除驗證錯誤,我想刪除只需要的屬性錯誤 – bahadir

+0

就在'返回View()'調用之前,手動從'ModelState'中刪除錯誤。 –

回答

1

這是不引人注目的驗證的默認行爲。如果您希望它的行爲不同,那麼您已根據您的要求創建了自定義屬性。

此連結創建自定義驗證屬性http://jqueryvalidationunobtrusivenative.azurewebsites.net/AdvancedDemo/CustomValidation

希望這可以幫助的例子。

+0

謝謝,現在我可以添加空的錯誤消息到我的viewmodel自定義屬性,但我仍然不能防止jquery添加空li元素錯誤列表。對此有何想法?或者我需要修改jquery不顯眼的來源? – bahadir

+0

我用li解決了這個問題:empty {display:none;} – bahadir

0

這可能是工作

[必需(的ErrorMessage =「「)]

(I加了空間)。驗證將正常工作,但消息將爲空(空格)

+0

Unobtrusive驗證在無序列表中顯示錯誤,所以它會以空行隨機間隔 – BoredBlazer