2014-09-10 28 views
0

喜的我是在ASP.net初学者,我会尝试使用路由引入 在Global.asax中通过下面的代码的一些解决方案:问题通过使用路由asp.net

protected void RoutingHandler(string routeName, string repUrl, string Url) 
     { 
      RouteTable.Routes.MapPageRoute(routeName,repUrl,Url); 
     } 
    protected void Application_Start(object sender, EventArgs e) 
     {   
      RoutingHandler("SolutionsRoute", "Solutions/{name}", "~/Pages/Solutions.aspx"); 
      RoutingHandler("SolutionsPageRoute", "Solutions", "~/Pages/Solutions.aspx"); 
     } 

和它的工作很好,我会使用到 网页在我的菜单链接,但是当我在URL如果点击其他连接 链接成这样再次/ 解决方案/解决方案/VD我 我该如何解决这个问题

+1

问题不在你的配置中,它在URL生成本身。只需重构链接,而不是在解决方案页面中使用href =“solutions/test”,请使用href =“/ solutions/test”。区别在于以/开头,表示root,并从那里你的路由将正确打。 – Peter 2014-09-10 14:37:00

回答

0

我的问题是在HREF的链接,是这样的解决方案/安全我放在forwad斜线像这样的url后面/解决方案/安全

0

您的问题可能是由于有两个路由声明为同一页。虽然这是有效的,但它不是推荐的方法。你应该改变你的减速,而不是指定这样

protected void RoutingHandlerWDefault(string routeName, string repUrl, 
     string Url, bool chkURL, string varOne) 
    { 
     RouteTable.Routes.MapPageRoute(routeName,repUrl,Url, chkURL, 
       chkUrl, new RouteValueDictionary { { varOne, string.Empty } }); 
    } 
protected void Application_Start(object sender, EventArgs e) 
    {   
     RoutingHandlerWDefault("SolutionsRoute", "Solutions/{name}", "~/Pages/Solutions.aspx", 
       false, "name"); 
    } 

,从而可以参照默认空值:asp.net webforms routing: optional parameters

另外请注意,你可能要改变你的链接到您的网址。你可以找到关于如何链接到这些链接中的路由URL的参考。

http://msdn.microsoft.com/en-us/library/cc668176.aspx

http://www.4guysfromrolla.com/articles/012710-1.aspx