2009-09-18 34 views
1

我有一堆文本框和一個保存按鈕來更新一些東西。當我點擊保存時,我有代碼確定它們是否正確填入,在代碼隱藏文件中。如何在asp.net中顯示錯誤消息?

如果它們未正確填寫,我想以警報的形式顯示錯誤消息。

這樣做的最好方法是什麼?按下按鈕顯然使得頁面回發,所以我想過添加一些像mypage.aspx?errormessage=blahblah的URL,但我不知道這是不是最好的辦法,甚至怎麼辦呢?

有什麼建議?

回答

3

Modal警報不好,因爲是回傳。嘗試儘可能在客戶端檢查,而不必往返服務器。請參閱jQuery Validation插件,以獲得較少干擾的驗證方式。

+0

回傳具有隻需寫一次驗證碼的優點。並改變它只有一次。我見過很多Web應用程序,其中服務器端驗證與客戶端〜有不同的結果。 – Joey 2009-09-18 09:19:35

+0

確實如此,但您可以隨時從JS驗證碼發出AJAX請求。這不會是用戶觀點的回傳。 – 2009-09-18 09:20:47

+0

啊,對不起。我以某種方式在「回發」中包含了AJAX請求。我的錯。 – Joey 2009-09-18 09:21:48

0

首先,我不會向用戶推薦顯示模式警報框。

您可以從服務器端代碼調用JavaScript函數,並在該函數中可以彈出錯誤。

或者你可以發出一個AJAX請求,並在服務器端驗證後,你可以發回一個響應給客戶端。

1

您是否可以使用CustomValidator觸發顯示警告框的客戶端腳本?

0

ASP.NET的各種驗證控件(啓用客戶端驗證)以及適當的錯誤消息和/或摘要消息對於大多數場景來說足夠好。

對於'AJAX的感覺和行爲',將控件放入一個updatepanel中也很容易實現。

0

儘可能多地使用驗證器,它們會向客戶端呈現一些JavaScript,因此,可以使用這些控件進行大量驗證,並且只有當它們都滿意後才允許頁面提交。

他們在每次提交時都會觸發,所以如果您不希望每個提交操作都觸發它們,則會使控件成爲驗證組的一部分。

他們可以驗證輸入使用正則表達式,確保字段有一個值,還有幾個。

然後有屬性來聲明一個'消息'和一個控件來顯示所有驗證器消息。所有這些都非常好,並且直接嵌入到IDE中。

去看看驗證控件。

1

你可以使用在服務器端錯誤處理代碼的ClientScript.RegisterStartupScript()方法來編寫JavaScript代碼片段它調用警報(「信息」),像這樣

private void ShowErrorMessage(string message) 
{ 
    string script = "alert('" + message + "');"; 
    ClientScript.RegisterStartupScript(typeof(MyPage), "errorScript", script, true); 
} 

但我會建議你改用驗證器。如果您實現自己的自定義驗證程序,則可以使其發出可在提交之前運行的客戶端腳本,以避免完成回發。

驗證器的一個好處是它們的錯誤消息可以顯示在頁面上的ValidatorSummary中,避免了醜陋的警告框。

0

試試下面的代碼在按鈕單擊事件:

string strErr="Error!";//Put your error message here 
ClientScript.RegisterStartupScript(GetType(), "scrptName", "javascript: alert('"+strErr+"'); ", true); 

它會顯示警告信息。

否則在您的aspx頁面上放置一個標籤並在page_load事件中設置可見的false。 當您的按鈕事件發生錯誤時,將標籤可見性設置爲「true」,並用錯誤消息填充標籤文本。