2012-09-07 68 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導致它消失。我還沒有找到它。其他一些人編寫了大部分代碼,我完全不知道自己的方式。不管怎樣,謝謝! –