ASP.NET 4 Webforms Routing
问题描述:
我正在创建一个CMS,并且希望将所有请求发送到Default.aspx(管理员路由除外)。以下是我有:ASP.NET 4 Webforms Routing
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Ignore("favicon.ico");
RouteTable.Routes.MapPageRoute("Administrator",
"Administrator",
"~/Admin/Default.aspx");
RouteTable.Routes.MapPageRoute("CMS",
"{PageURL}",
"~/Default.aspx");
}
这是工作的要求,如:
mywebsite.com mywebsite.com/test mywebsite.com/anothertest
不过,我得到一个资源不能被发现:
mywebsite.com/another/test
我怎样才能改变我的路由,使其捕捉多个级别?
答
您可以尝试使用路由通配符将您的{PageURL}
转换为{*PageURL}
(或者我甚至认为{*}
可以工作,但我不确定)。
或者,你可以不喜欢PageURL/{*TheRest}
只要记住通配符是非常强大的,应在你的路线年底正式因为路由才能想通了。
谢谢,添加RouteTable.Routes.MapPageRoute(“CMS”, “{* PageURL}”, “〜/ Default.aspx”);因为底线就是诀窍 – Paul 2012-03-29 03:36:14