C# 可以在Global.asax中使用友好的URL功能吗?
我正在学习ASP.NET4.5,偶然发现了一篇关于友好URL的帖子。现在我使用的是ASP.NET 4.5,当我创建一个新的ASP.NET项目时,该功能已经启用并安装 假设我有以下URL: 这应映射到以下内容: 这在C# 可以在Global.asax中使用友好的URL功能吗?,c#,asp.net,friendly-url,C#,Asp.net,Friendly Url,我正在学习ASP.NET4.5,偶然发现了一篇关于友好URL的帖子。现在我使用的是ASP.NET 4.5,当我创建一个新的ASP.NET项目时,该功能已经启用并安装 假设我有以下URL: 这应映射到以下内容: 这在Users.aspx.cs中运行良好,但是我可以在Global.asax中也使用它吗?我已经尝试过了,以下方法返回空字符串: string a = Request.GetFriendlyUrlFileExtension(); string b = Request.GetFriend
Users.aspx.cs
中运行良好,但是我可以在Global.asax
中也使用它吗?我已经尝试过了,以下方法返回空字符串:
string a = Request.GetFriendlyUrlFileExtension();
string b = Request.GetFriendlyUrlFileVirtualPath();
IList<string> c = Request.GetFriendlyUrlSegments();
string a=Request.GetFriendlyUrlFileExtension();
字符串b=Request.GetFriendlyUrlFileVirtualPath();
IList c=Request.GetFriendlyUrlSegments();
我不熟悉您所指的friendlyURL包,但如果您想自己尝试一下,以下是您可以着手编写一些自定义路由的方法:
在您的global.asax中
using System.Web.Routing;
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Users", "Users/{*queryvalues}", "~/Users.aspx");
}
然后在Users.aspx.cs中,而不是从
Request.QueryString["somekey"]
你会从中得到你的价值观
//This makes an array of string values
RouteData.Values["queryvalues"].ToString().Split('/')
microsoft有一个例子我一直在使用友好的URL,下面是我在web表单项目中所做的: 全球ASAX 页面接收查询字符串
您不需要在此配置中拆分querystring值。是的,不幸的是,这不是我要问的。我试着使用我在
Users.aspx.cs
中询问的方法,它们按预期工作。我在Global.asax.cs
中尝试了它们,但所有内容都返回一个空字符串。我想我不明白您为什么需要或希望在Global中执行此操作?我正在尝试构建一个授权方法,该方法依赖于路径匹配,由数据库中的一组表支持。也就是说,我需要知道用户请求的确切路径,并过滤掉所有应该是参数的段;我需要在Global.asax.cs
中执行此操作。我对其他想法持开放态度,因此如果您有想法,请立即提出。我阅读的教程没有告诉我设置任何路由,并且这些方法在Users.aspx.cs
中按预期工作。然而,我想做的是在Global.asax.cs
中使用这些方法,不幸的是,它们都返回空字符串。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("About", "About", "~/About.aspx", true);
routes.MapPageRoute("Add User", "Add User", "~/Add.aspx", true);
routes.MapPageRoute("Login", "Login", "~/Login.aspx", true);
routes.MapPageRoute("Map", "Map", "~/Map.aspx", true);
routes.MapPageRoute("Register", "Register", "~/Register.aspx", true);
routes.MapPageRoute(
"ViewList",
"ViewList/{c}/{s}",
"~/ViewList.aspx",
true
);
routes.MapPageRoute(
"ViewUser",
"ViewUser/{id}",
"~/ViewUser.aspx",
true
);
routes.MapPageRoute(
"MyAccount",
"MyAccount/{id}",
"~/MyAccount.aspx",
true
);
}
string city = RouteData.Values["c"].ToString();
string state = RouteData.Values["s"].ToString();