2010-09-30 48 views
1

我有一個ASP.Net webforms應用程序,它使用.Net全球化功能在不同的語言環境中提供.aspx頁面。我已經定義的自定義錯誤,.net defaultRedirect到特定於語言環境的錯誤頁面

<customErrors mode="RemoteOnly" defaultRedirect="Error.htm"> 

我更喜歡使用non-.Net頁的defaultRedirect中,以防止無限循環的可能性,萬一錯誤頁面本身產生一個錯誤,所以我有針對性的靜態。 htm頁面。但是,我想在用戶最初請求的語言環境中呈現該頁面,其中語言環境由查詢字符串確定。

完成此操作的最佳方法是什麼?

我已經考慮這些選項,但我感興趣的其他選項:

  • 重定向到一些其他應用程序/域,可以運行服務器端邏輯來重定向或渲染區域設置特定的響應(似乎像矯枉過正)
  • 使用的客戶端代碼(JavaScript的)來呈現特定的語言環境的內容(不適用於JavaScript的瀏覽器禁用工作,不過,我想它爲這些用戶工作太)
  • 充分利用靜態錯誤頁面以多種語言顯示文本 - 在一個頁面上顯示所有語言文本(我傾向於只在一個語言環境中顯示文本,雖然)

回答

1

如果你的項目文件結構具有語言特定的文件夾,一個解決方案是創建一個的web.config在每個語言文件夾

示例項目結構

    僅指定 <customErrors />
  • App_Code文件
  • ...
  • EN-US
    • ...
    • 的web.config
  • EN-GB
    • ...
    • 的web.config
  • ZH-CN
    • ...
    • web.config
  • ...
  • Default.aspx的
  • 的web.config
0

,如果你可以創建一個錯誤信息的動態頁面,注意對本地化和其他的東西,我認爲這是最好的辦法。

您可以在全球範圍內處理錯誤。asax我們開發自己的httpmodule(這兩種方式都是有效的),您可以通過一個偉大而動態的方式來管理應用程序錯誤,並控制所有進程。包括確定當前的語言以決定可能的重定向,或者例如顯示關於不同種類的錯誤的不同消息。

在我看來,我開始用解決方案解決問題,該解決方案可以靈活地設定如何處理不同情況。