Sam*_*Sam 3 asp.net routing url-rewriting url-routing
据我所知,在ASP.net 4.0中,URL路由已合并到Web窗体中.很高兴我能做到这样的事情:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Category", "list/{id}/{name}", "~/category.aspx");
routes.MapPageRoute("Product", "item/{id}/{name}", "~/product.aspx");
}
Run Code Online (Sandbox Code Playgroud)
但是有没有内置的方法让我将无扩展名的网址路由到他们的.aspx对手,而无需为每个文件手动添加路由?例如:
account/login => account/login.aspx
contact-us => contact-us.aspx
Run Code Online (Sandbox Code Playgroud)
谢谢
我在路线的末尾添加了以下内容作为一个包罗万象的规则,它似乎正在起作用.
routes.MapPageRoute("Default", "{*file}", "~/{file}.aspx");
Run Code Online (Sandbox Code Playgroud)
您可以使用像MVC中的占位符
VB.NET
routes.MapPageRoute(
"ThreeLevels",
"{folder}/{file}/{id}",
"~/{folder}/{file}.aspx", True,
New RouteValueDictionary From {
{"folder", "Home"},
{"file", "Default"},
{"id", Nothing}
})
Run Code Online (Sandbox Code Playgroud)
C#
routes.MapPageRoute(
"ThreeLevels",
"{folder}/{file}/{id}",
"~/{folder}/{file}.aspx", true,
new RouteValueDictionary {
{"folder", "Home"},
{"file", "Default"},
{"id", null}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |