【问题标题】:Set ASP.NET Page Culture from <html lang="fr"> tag?从 <html lang="fr"> 标记设置 ASP.NET 页面文化?
【发布时间】:2012-11-26 22:19:28
【问题描述】:

我可以让我的 ASP.NET 页面从 &lt;html lang="fr"&gt; 标记/属性设置他们的文化和 UICulture 吗?

我正在寻找一种代码影响最小的解决方案,该解决方案适用于只需要少量代码的网站创作。

注意,我看过很多关于 ASP.NET 页面文化的帖子,但没有一篇提到从 &lt;html&gt; 标记中获取设置并将其应用于 ASP.NET 页面类。

【问题讨论】:

  • 你为什么不想这样?为什么不在 web.config 中使用全球化?
  • 顺便说一下,全球化也可以在运行时设置。
  • 我想这样做是因为页面作者严格使用 aspx 标记中的 HTML 并使用 &lt;html&gt; 标记来指示页面语言。不必在 ASP.NET 页面指令等中训练它们会更容易。但我的任务是在后面的代码中添加额外的动态内容,这是语言敏感的。

标签: asp.net html localization globalization


【解决方案1】:

你可以设置@Page指令的Culture和UICulture属性:

<%@ Page UICulture="es" Culture="es-MX" %>

如你所见here

【讨论】:

  • 谢谢,我知道,但这并没有解决我的问题。我想要由 HTML 标记语言属性确定和设置的 ASP.NET 值。
【解决方案2】:

如果可以添加:

runat="server" id="HtmlMasterTag" 

对于html标签,你可以在页面后面的代码中(或者在一个通用的基本页面中)做这样的事情:

string language = HtmlMasterTag.Attributes["lang"];

并使用变量语言来设置UICulture和Culture

【讨论】:

  • 谢谢,但这不起作用。 Page Culture 和 UICulture 必须在 Page InitializeCulture 方法的覆盖中设置。在页面生命周期的开始阶段调用此方法。包括 在内的服务器控件在启动阶段之后的初始化阶段才可用。我在代码中对其进行了测试。参考ASP.NET Page Life Cycle Overview
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2016-02-14
  • 2010-09-10
相关资源
最近更新 更多