2012-04-19 47 views
0

下潰敗登記適用於我的asp.net MVC應用程序狂勝註冊休息

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

當我改變它抓住這個網址,

我得到resource not found錯誤

本地主機:85 \ DIS \ TrackingChannels

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

我該如何解決這個問題?

+0

什麼URL會導致錯誤? – SLaks 2012-04-19 15:52:57

+0

用你所擁有的東西來建立一個項目模板不會給我帶來任何問題。我可以導航到'/ dis/trackingchannels'並且索引視圖成功定位。 – 2012-04-19 15:55:24

+0

我能想到的唯一的事情就是你使用的是反斜槓而不是正斜槓,但是我不能在這裏重現(實際上,我的所有瀏覽器都會將反斜槓變爲正斜槓或給我一個錯誤對話框)。你想讓我發佈一些對我有用的細節嗎? – 2012-04-19 19:42:18

回答

0

好吧,我需要出去,所以我現在會發布這個,因爲我不知道我會是多久。

我設置了一個默認的MVC 3項目,並更改了路由以符合您的情況。

的Global.asax:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

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

增加了TrackingChannelsController

public class TrackingChannelsController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult Test() 
    { 
     return View(); 
    } 
} 

我特意添加了Test動作,看看是否/dis/trackingchannels/{action}也將工作。然後我說一對夫婦的意見這就造成了以下項目結構:

Project setup

最後,這裏是在瀏覽器中指定URL的結果:

先用/dis/trackingchannels

TrackingChannels Index

第二,/dis/trackingchannels/test

TrackingChannels Test

我可以說沒有看到您的項目的唯一的事情就是仔細檢查URL是否匹配正確的路線。要做到這一點,您可以使用Phil Haack's RouteDebugger