2010-05-09 59 views
0

默認ASP.NET MVC項目有一個像圖路線自定義ASP.NET MVC圖路線

routes.MapRoute(
      "Default", 
      "{controller}/", 
      new { controller = "Home", action = "Index" } 
      ); 

而且像這些URL是等價的:www.mysite.comwww.mysite.com/homewww.mysite.com/home/index

但是,如果我試圖用一個圖路線像

  routes.MapRoute(
      "Sitemap", 
      "{controller}/{action}", 
      new { controller = "Sitemap", action = "ShortMap" } 
     ); 

和測試網址www.mysite.com/sitemap我收到錯誤404,但我期待它像www.mysite.com/sitemap/shortmap工作

如何正確地寫這個圖路線?

回答

0

我發現在地圖上的路線問題,以幫助最好的辦法是菲爾哈克的路線工具http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx。這是一個很好的方式來查看你的路線是如何使用的以及如何使用的。

當您嘗試/ sitemap/action時會發生什麼

+2

路由調試也是MvcContrib http://mvccontrib.codeplex.com/ – CVertex 2010-05-09 09:43:14

1

您應該正確拼寫字詞控制器。

你把它拼寫contoller

+0

就錯在問題沒有代碼。 我由此代碼解決了這個問題: routes.MapRoute( 「的MainPage」, 「」, 新{控制器= 「主頁」,動作= 「索引」} ); routes.MapRoute( 「Sitemap」, 「Sitemap/{action}」, new {controller =「Sitemap」,action =「ShortMap」} ); 現在www.mysite.com/sitemap和www.mysite.com/sitemap/shortmap是等價的。這不是因爲默認圖路線influnce的工作。 – shadeglare 2010-05-09 02:31:11

0

確認視圖「ShortMap」確實存在。我知道,這很簡單 - 但發生在我身上幾次。