2012-09-07 184 views
0

我正在ASP.NET MVC 3中工作,我遇到了一个奇怪的问题。我收到了一个复选框,用户必须检查它是否已经阅读并继续。如果他们不检查,他们不能继续。这一切都有效。Html.CheckBoxFor()导致验证消息消失

如果他们没有选中该框,验证消息将根据需要弹出,并且标签显示为红色。但是,当我选中该框时,标签将随验证消息一起消失。什么会造成这种情况?我希望标签保持原样。 ;)这里的视图代码:

@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; } 
+0

因为验证在盒子检查时通过? –

+0

是的,但标签不应该留下? –

+0

您的代码隐藏了标签。找到它。处置它;) –

回答

1

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

0

这是因为一旦复选框被选中它通过验证。你为什么认为这是一个问题?你期待什么行为?

+0

对于我所关心的所有人来说,验证消息可能会消失。我只想让标签留下来。 ;) –

+0

啊,对不起。误解。使用FireBug来确定它是否只是一个CSS更改或者标签是否已被删除。没有看到你的网页,很难猜测。 – Jeff

+0

好吧,FireBug显示有一些神秘的内联css导致它消失。我还没有找到它。其他一些人编写了大部分代码,我完全不知道自己的方式。不管怎样,谢谢! –