2010-09-30 78 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(这两种方式都是有效的),您可以通过一个伟大而动态的方式来管理应用程序错误,并控制所有进程。包括确定当前的语言以决定可能的重定向,或者例如显示关于不同种类的错误的不同消息。

在我看来,我开始用解决方案解决问题,该解决方案可以灵活地设定如何处理不同情况。

相关问题