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

本文关键字:显示 错误 消息 字段 | 更新日期: 2023-09-27 18:24:23

我的模型中有这个属性:

[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字段是必需的。

如果我将所需属性更改为[必需(ErrorMessage=null)],我会得到一个错误:

必须设置ErrorMessageString或ErrorMessageResourceName,但是不是两者都有。

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

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

我认为这应该有效。

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

我不知道有什么可靠的方法可以破解验证过程,但你可以像这样破解表单提交过程(我的想法是,未经测试):

$("#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字段是必需的",则将其隐藏。通过首先隐藏整个块来防止其闪烁。