2013-12-10 51 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