Html.CheckBoxFor()导致验证消息消失

时间:2012-09-07 14:46:22

标签: asp.net-mvc-3 razor checkbox validation

我在ASP.NET MVC 3中工作,我遇到了一个奇怪的问题。我设置了一个复选框,因此用户必须检查它以表明他们已阅读披露并继续。如果不检查,他们就无法继续。一切正常。

如果他们不选中此框,则会根据需要弹出验证消息,并且标签显示为红色。但是,当我选中该框时,标签会随验证消息一起消失。什么会导致这个?我希望标签保持不变。 ;)以下是视图中的代码:

    @section StepContent
    {

    <div>
        @Html.LabelFor(m => m.ApplicantAgreesToDisclosure)
        @Html.CheckBoxFor(m => m.ApplicantAgreesToDisclosure)
        @Html.ValidationMessageFor(m => m.ApplicantAgreesToDisclosure, "Please indicate that you agree to the disclosure.")
    </div>

    }

模型中的代码:

    [DisplayName("I have read and accept the above disclosure")]
    [ESignatureRequiredValidation(ErrorMessage = "Please indicate that you agree to the disclosure.")]
    public bool ApplicantAgreesToDisclosure { get; set; }

2 个答案:

答案 0 :(得分:1)

事实证明,有一些内联CSS导致元素消失。使用FireBug和Firefox并点击消失的元素表明我的CSS被覆盖在其他地方。这不是我的MVC代码中的问题。我将我的CSS标记为“!important”(意思是我的一点CSS是“重要的”)作为临时修复,直到我找到内联代码。

答案 1 :(得分:0)

这是因为一旦勾选了复选框,它就会通过验证。为什么你认为这是一个问题?你期待什么行为?