(使用ASP.NET Web窗體的Microsoft .NET Framework版本:4.0.30319,ASP.NET版本:4.0.30319.34274)RequiredFieldValidator的錯誤信息,並形成復位
我有一個asp:文本框域和用於該文本字段一個RequiredFieldValidator:
<asp:TextBox
runat="server"
ID="MyTextBox" />
<asp:RequiredFieldValidator
runat="server"
ID="RequiredUserName"
ControlToValidate="MyTextBox"
ErrorMessage="MyTextBox is required"
Display="None" />
當用戶提交頁面,我驗證它,然後清除表單,讓他們的用戶可以再次使用表格的形式。在Page_Load
背後的代碼如下所示:
if (Page.IsPostBack)
{
Page.Validate();
if (Page.IsValid)
{
SaveFormSubmissionToDatabase();
MyTextBox.Text = "";
}
}
所以,我確認一切,這Page.IsValid是真的,我保存用戶數據的形成,然後嘗試清除表單的用戶再次練習I.但是,由於表單被清除,RequiredFieldValid顯示錯誤消息,即使我已經運行Page.Validate()
並且沒有再次運行它。
爲什麼會這樣,我能做些什麼來避免在清除表單後顯示此錯誤消息?更一般地說,爲什麼這個RequiredFieldValidator再次運行?
我應該注意到,錯誤信息實際上是在asp:ValidationSummary
控件中顯示的。
(我想,也許客戶端驗證被觸發的錯誤信息顯示,所以我的RequiredFieldValidator的設置EnableClientScript="false"
,但這並沒有改變任何東西)
我研究這個問題了並發現了其他人有同樣的問題,但沒有解決方案。例如,This question。建議的解決方案是重定向到同一頁面,這不起作用,因爲我需要顯示一些關於剛剛提交的表單的信息,包括成功消息,如果我重定向,那麼信息將會丟失到同一頁面。
你可以刪除錯誤,當你清除表單?這是一個解決方法 – erikscandola
@erikscandola,我可以,但我想了解錯誤的來源,並在訴諸類似的東西之前查看是否有其他解決方案。 – nephets