我有简单的ASP.NET web forms项目只有几个页面,我想使用友好的url ( 不仅仅是 SEO,还包括网址的本地化) 。 我对这个项目使用. NET 4.5,并尝试使用 Microsoft.AspNet.FriendlyUrls的nuget软件包,看起来可能有帮助。 但有一个问题。
我在 Global.asax 里找到了void Application_Start(object sender, EventArgs e)
{
//Code that runs on application startup
BundleConfig.RegisterBundles(BundleTable.Bundles);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
RouteConfig类如下所示:public static class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("HowItWorks","ako-to-funguje","~/HowItWorks.aspx");
routes.MapPageRoute("AboutUs","o-nas","~/AboutUs.aspx");
routes.MapPageRoute("Contact","kontakt","~/Contact.aspx");
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
}
如果你通过/HowItWorks 和/ako-to-funguje ( Slovak地区) 访问它,我想显示相同的页面。
现在我已经接近实际问题了。 使用本地化路由之一访问站点时( 比如 。 /ako-to-funguje) 然后 Request.GetFriendlyUrlFileVirtualPath() 返回空字符串( 但我想得到"~/howitworks 。aspx"我想在母版页上做一些事情) 。string pageFileName = Request.GetFriendlyUrlFileVirtualPath();
switch (pageFileName)
{
case"~/AboutUs.aspx":
//do some stuff
break;
case"~/HowItWorks.aspx":
//do some stuff
break;
case"~/Contact.aspx":
//do some stuff
break;
default:
break;
}
如果我使用/HowItWorks URL访问站点,那么 Request.GetFriendlyUrlFileVirtualPath() 按预期返回"~/howitworks 。aspx"。
了解如何通过/HowItWorks 和/ako-to-funguje访问站点时从 Request.GetFriendlyUrlFileVirtualPath() 获取"~/howitworks 。aspx"?