2014-09-10 54 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