gpt4 book ai didi

asp.net - 如何根据 UICulture 设置进行 URL 路由?

转载 作者:行者123 更新时间:2023-12-02 14:09:47 25 4
gpt4 key购买 nike

我有 ASP.NET 4 项目(不是 MVC)。我需要根据用户输入语言创建 url 路由。

项目只有两种语言“he”和“en”。

用户可以进入该网站,如果他的文化设置为除 he-IL 之外的任何内容,我想将他重新路由到 website.com/en/,否则路由到 website.com/he/

Default.aspx 应保留同一页面,该页面使用全局化功能根据浏览器中用户的文化设置转换值。

我怎样才能做到这一点?除了在 Global.asax 中编写路线以及如何编写此路线之外,我还应该做什么。

最佳答案

这应该不难。是的,Global.ascx 是最好的起点。

首先绘制路线,

    protected void RegisterRoutes(RouteCollection routes)
{
//Contact route for EN culture
routes.MapPageRoute(
"contactRouteEN",
"en/contact",
"~/Contact.aspx"
);

routes.MapPageRoute(
"contactRouteHE",
"he/contact",
"~/Contact.aspx"
);
}

protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}

这就确定了路线。

您描述的问题听起来更像是全局化问题,而不是 url 路由问题。在我看来,问题的 url 部分对用户来说只是装饰性的,但不会攻击根本问题。 ASP.Net 为全局化提供了便利。例如,您可以使用 LocalResources。要对应用程序根级别的页面(不嵌套在文件夹内)执行此操作右键单击该网站并选择“添加 ASP.Net 文件夹”选择App_LocalResources。右键单击 App_LocalResources 文件夹并选择添加项目选择资源文件。

根据您计划定位的文化来命名文件非常重要

您可以创建第一个文件 Contact.aspx.resx 作为默认资源文件(也许是英文?)

ASP.Net 将尝试找到最具体的区域性来匹配资源文件,如果未提供更具体的区域性,则将采用默认值。

命名约定遵循PageName.aspx.languageID-cultureId.resx

您可以拥有 Contact.aspx.he.resx

例如,在标签控件中,您可以这样设置

<asp:Label ID="lbContactMessage" runat="server" Text="something" meta:resourcekey="yourmatchingkeyfromresourcefile"></asp:Label>

欲了解更多信息,请参阅 http://msdn.microsoft.com/en-us/library/c6zyy3s9.aspx

关于asp.net - 如何根据 UICulture 设置进行 URL 路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com