2012-04-19 1 views
0

Следующая Разгром регистрация работает для моего приложения ASP.NET MVCмаршрутные регистрации разрывается, когда я изменить URL в global.asax

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

Когда я изменить его, чтобы поймать этот адрес,

I получить resource not found ошибка

для локального хоста: 85 \ Дис \ TrackingChannels

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

Как это исправить?

+0

Какой URL-адрес дает ошибку? – SLaks

+0

Настройка шаблона проекта с тем, что у вас не дает мне никаких проблем. Я могу перейти к '/ dis/trackingchannels', и индексный указатель успешно расположен. –

+0

Единственное, о чем я могу думать, это то, что вы используете обратную косую черту вместо forwardslashes, но я не могу воспроизвести это здесь (на самом деле, все мои браузеры либо меняют обратную косую черту, либо пересылают мне диалог с ошибкой). Вы хотите, чтобы я опубликовал информацию о том, что работает для меня? –

ответ

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.