熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET定制簡單的錯誤處理頁面

2013-11-13 11:08:56  來源: .NET編程 
    通常Web應用程序在發布後為了給用戶一個友好界面和使用體驗都會在錯誤發生時跳轉至一個自定義的錯誤頁面而不是ASPnet向用戶暴露出來的詳細的異常列表

  簡單的錯誤處理頁面可以通過webconfig來設置

<customErrors mode=RemoteOnly defaultRedirect=GenericErrorPagehtm
 <error statusCode= redirect=NoAccesshtm />
 <error statusCode= redirect=FileNotFoundhtm />
</customErrors>
  如果想通過編程的方式來呈現錯誤原因可以通過Page_Error事件來做這件事

  另一種方式則可以通過Globalasax來實現我覺得這種方式較為方便另外如果能結合一個單獨的更加友好的頁面則看來起更舒服一些

  Globalasax(如果需要可以記錄錯誤日志)

void Application_Error(object sender EventArgs e)
{
 Exception objErr = ServerGetLastError()GetBaseException();
 string error = 發生異常頁: + RequestUrlToString() + <br>;
 error += 異常信息: + objErrMessage + <br>;
 ServerClearError();
 Application[error] = error;
 ResponseRedirect(~/ErrorPage/ErrorPageaspx);
}
ErrorPageaspx

protected void Page_Load(object sender EventArgs e)
{
 ErrorMessageLabelText = Application[error]ToString();
}
  當最終用戶使用應用程序的時候他們可能不想知道錯誤的原因這個時候我們可以通過復選框來實現是否呈現錯誤的原因可將Label放在一個div中然後用復選框來決定是否呈現div

<script language=JavaScript type=text/Javascript
<!
function CheckError_onclick() {
 var chk = documentgetElementById(CheckError);
 var divError = documentgetElementById(errorMsg);
 if(chkchecked)
 {
  divErrorstyledisplay = inline;
 }
 else
 {
  divErrorstyledisplay = none;
 }
}

//
</script>


  我們可以對errorpage這頁做一些更親切的設計讓人看起來更舒服些 


From:http://tw.wingwit.com/Article/program/net/201311/15264.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.