仅突出显示必填字段而不显示错误消息

时间:2014-09-25 19:08:02

标签: c# asp.net-mvc validation

我的模型中有这个属性:

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

和我的观看代码:

@Html.ValidationSummary()
@Html.TextBoxFor(m => m.FirstName)

如果用户没有为字段输入值,我希望突出显示文本框,但我不希望显示错误消息。我还需要显示其他验证的错误消息。

如果我按原样保留代码,则会显示默认错误消息

  

FirstName字段是必需的。

如果我将required属性更改为[Required(ErrorMessage = null)],我收到错误:

  

必须设置ErrorMessageString或ErrorMessageResourceName,但是   不是两个。

如何在不显示错误消息的情况下突出显示文本框,同时仍允许其他验证的错误消息?

2 个答案:

答案 0 :(得分:0)

我认为这应该有用。

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

答案 1 :(得分: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();
});

概念是:如果表单无效,如果" FirstName字段是必需的"显示在验证摘要中,隐藏它。首先隐藏整个块,防止它闪烁。