我有一個使用ASP.NET驗證的表單。我在aspx中使用了一些內聯C#來根據用戶的角色顯示/隱藏某些控件。我會使用Visible屬性,但其中有很多,我只是決定內聯C#來顯示和隱藏(我知道,不是最佳實踐,但忍受了我一秒鐘)。我有一個問題,當我提交表單時(當某些字段被隱藏時),Page.IsValid始終設置爲False。即使這些控件甚至沒有呈現在pag上,驗證仍然會觸發嗎?此外,如果情況並非如此,是否有一種有效的方法來分解Page.IsValid以找出將其設置爲False的內容?謝謝。即使隱藏控件,驗證仍然在ASP.NET中觸發嗎?
回答
如果設置可見爲false,該控件將不火驗證。 From ASP.Net Validation in Depth:
爲什麼不只是使用Visible = false將 設爲隱形驗證程序?在ASP.NET中,控件的可見屬性具有非常強的含義:具有 Visible = false的控件將不會在 處理全部用於預先呈現或呈現。由於 這個更強的含義的結果, Visible = false對於驗證程序意味着 不僅不顯示 任何東西,它也不會運行 。它沒有被評估, 影響頁面有效性,並且不會在摘要中顯示 錯誤。
如果您想讓控件驗證但將其隱藏在頁面上,請使用CSS將顯示設置爲無。
感謝您的迴應。這完全有道理。我是否需要在驗證和實際控制本身上設置Visible屬性?或者只是驗證?我有點心慌,因爲我的頁面正在做一個PostBack,並且我有大約10個需要的字段驗證器(隱藏的)沒有被解僱。如果你只是使用CSS隱藏HTML,它是否僅僅觸發定製/服務器端驗證?請指教。 – Josh 2010-06-02 23:29:13
驗證器仍然會火,你需要隱藏他們以及
所以你說我需要將Visible屬性設置爲false,所有這些屬性都是false? – Josh 2010-06-02 23:20:52
是的,如果您在數據綁定上下文中,則可以將可見性綁定到屬性。
好的,謝謝。唯一的問題是,我猜測驗證是否在幕後被解僱,所需的字段驗證器會阻止表單完全被提交(我的情況並非如此)。有任何想法嗎? – Josh 2010-06-02 23:33:53
是的,驗證器會在客戶端隱藏時觸發。
如果通過使用display =「none」或visibility =「hidden」CSS屬性將驗證程序及其控件隱藏在客戶端,那麼驗證程序仍然會在客戶端和服務器端啓動。
如果你想驗證不計算在客戶端和服務器端/火,你必須設置這兩個屬性上的驗證代碼隱藏:Visible="false"
或Enabled="false"
控制驗證不火如果它試圖驗證的是不可見的。 visible =「false」
但是,它仍然會驗證它,而不是在該控件上執行hidden =「true」,以便它不會顯示給用戶,但希望它能夠驗證它。
- 1. 隱藏控件對於驗證仍然具有挑戰性?
- 2. 隱藏控件中的必需驗證控件asp.net
- 3. ASP.Net驗證器在使用用戶控件回發後觸發
- 4. 即使通過自定義服務器端驗證失敗,ASP.NET按鈕點擊事件仍然會觸發
- 5. ValidateInput(false)仍然觸發在IValidatableObject中的驗證
- 6. OnClientClick按鈕仍然運行,即使在驗證組中
- 7. 隱藏和顯示字段仍使用ASP.NET MVC 2驗證隱藏字段客戶端驗證
- 8. 使用驗證器隱藏span asp.net
- 9. 中繼器內的文本框即使隱藏,仍然被發現,爲什麼?
- 10. JQuery驗證隱藏劍術-UI控件
- 11. Telerik MVC控件仍然加載jQuery驗證,即使設置它不
- 12. 改變ASP.Net驗證控件忽略JavaScript隱藏字段
- 13. 背面仍然可見,即使它被設置爲「隱藏」
- 14. 驗證不在asp.net中觸發?
- 15. 驗證在ASP.NET MVC中觸發
- 16. 隱藏控件時隱藏驗證裝飾
- 17. 使用css隱藏Asp.net中的控件
- 18. Asp.Net驗證控件
- 19. ASP.NET驗證控件
- 20. ASP.NET驗證控件
- 21. 在隱藏面板中禁用asp驗證控件
- 22. 即使驗證返回false,表單仍然會提交
- 23. 使用驗證控件對日期進行驗證?在Asp.net中?
- 24. 從代碼隱藏的ASP.net驗證
- 25. 驗證問題隱藏DropDownListFor的ASP.NET MVC3
- 26. UITextField,隱藏鍵盤,TopBar仍然存在
- 27. 隱藏Asp.Net用戶控件使用c#
- 28. Java問題,禁用控件仍然會觸發事件!
- 29. MVC立即驗證不會觸發?
- 30. 如何在多個ASP.NET驗證控件上顯示/隱藏錯誤消息?
你是什麼意思的內聯C#?你正在設置顯示:無?我不是很清楚你在做什麼 – 2010-06-02 23:17:36
<%if(newClubRequest)%> - 顯示一定的html – Josh 2010-06-02 23:20:31