2012-07-28 70 views
9

我想通过以下这在我的Web窗体应用程序添加路由:ASP.NET路由在Global.asax中

http://msdn.microsoft.com/en-us/library/cc668201.aspx#adding_routes_to_a_web_forms_application

我已经添加的路由在我的Global.asax文件像所以:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("", "/WebsiteName/{combinedPin}", "~/Default.aspx"); 
} 

然后我尝试在本地访问我的网站是这样的:

的http://本地主机:12345/WebsiteName/test36u

但我得到一个资源找不到消息,所以我不认为我的路线是正确的。任何人都可以看到我的代码有问题吗?

任何指针将不胜感激。

感谢

回答

5

你并不需要指定网站的名称作为路线的一部分,尝试使用此代码:

routes.MapPageRoute("", "{combinedPin}", "~/Default.aspx"); 

与上面的代码,你的链接看起来像:

http://localhost:12345/WebsiteName/test36u 

如果您但是目的是使用户访问使用命名细分网站:WebsiteName然后使用:

routes.MapPageRoute("", "WebsiteName/{combinedPin}", "~/Default.aspx"); 

但在先例代码的用户将有权访问自己的资源,如下所示:(可能不是预期,虽然结果)

http://localhost:12345/WebsiteName/WebsiteName/test36u 
+0

感谢Jupaol。我仍然能够访问Request.QueryString [“combinedPin”]?我想能够检查,看它是否存在错误处理... – 2012-07-29 02:43:25

+1

忽略我,我想我可以这样做:Page.RouteData.Values [“combinedPin”] – 2012-07-29 02:46:43