2014-09-25 54 views
0

我在我的模型这个属性字段字段,我想要突出显示文本框,但我不希望显示错误消息。我需要显示其他验证的错误消息。只强调需要在不显示错误信息

如果我原样留下该代码,则显示

The FirstName field is required.

默认的错误消息如果更改所需的属性是[必需(的ErrorMessage = NULL)]我得到一个错误:

Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.

如何突出显示文本框而不显示错误消息,同时仍允许用于其他验证的错误消息?

+0

如果你想同时保留[必填]和[你的重点内容],我想有两种方法可以实现。首先,创建一个新的属性(自定义属性)并将其添加到字段中。其次是使用jquery,简单快捷。此外,只需一行或两行代码就可以完成所有的字段。 – Prashant19sep 2014-09-25 19:35:29

+1

为什么不直接输入错误信息和空字符串? – Botonomous 2014-09-25 19:39:13

+0

这就是我在想的。你得到的错误是因为'Required'不接受'null'这些参数,但它会接受一个空字符串,因为它仍然是一个字符串。应该至少有效地表明错误消息已被移除,因为它将显示空字符串。 – 2014-09-25 19:53:38

回答

0

我认为这应该工作。

[Required(ErrorMessage = " ")] 
    [StringLength(40, ErrorMessage = "First Name must not be more than 40 characters.")] 
    public string FirstName { get; set; } 
+0

,则会得到相同的错误,但这仍然会为验证摘要添加项目符号 – Spencer 2014-09-26 14:27:01

0

我不知道的一种可靠的方式攻入验证过程,但你可以攻入这样的形式提交过程(关我的头顶部,未经测试):

$("#theForm").submit(function() { 
    $('.validation-summary-errors').hide(); 
    if (!$(this).valid()) { 
     $('.validation-summary-errors>ul>li').filter(function(){ 
      return (/The FirstName field is required/i).test($(this).text()) 
     }).hide(); 
    } 
    $('.validation-summary-errors').show(); 
}); 

概念是:如果表单无效,如果“验证字段是必需的”显示在验证摘要中,请将其隐藏。通过首先隐藏整个块来防止闪烁。