MVC двусмысленность маршрутизации - PullRequest
0 голосов
/ 08 марта 2012

У меня психический путь: Home/signUp.aspx

и Controller/HomeController.cs (related to Views/home/index.aspx)

Моя маршрутизация настроена в global.asax:

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

     //settings - manage toolbars
        routes.MapRoute("SettingsManageToolbars", "home/{action}/{id}",
           new { controller = "Home", action = "Index", id = UrlParameter.Optional });

           routes.MapRoute(
               "Default",
                // Route name
               "toolbar/apps/{controller}/{action}/{id}",
                // URL with parameters
               new { controller = "Home", action = "Index", id = "" }
                // Parameter defaults
                );
        }

Когда я занимаюсь серфингом до home\signup.aspx Я получаю текстовую страницу с "содержимым каталога"

Как я могу исправить эту маршрутизацию?

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

По умолчанию маршрутизация не обрабатывает запросы, которые сопоставляются с существующим физическим файлом на веб-сервере. Маршрутизация не обрабатывает запрос, даже если он соответствует определенному шаблону, например {controller} / {action} / {id}.

Если вы хотите, чтобы маршрутизация обрабатывала все запросы, даже запросы, которые указывают на файлы, вы можете переопределить поведение по умолчанию, задав для свойства RouteExistingFiles объекта RouteCollection значение true. Если для этого значения установлено значение true, все запросы, соответствующие определенному шаблону, обрабатываются маршрутизацией.

http://msdn.microsoft.com/en-us/library/cc668201.aspx#scenarios_when_routing_is_not_applied

0 голосов
/ 08 марта 2012

Почему ваш домашний контроллер является файлом aspx?Попробуйте сделать это HomeController.cs!

Я бы предложил удалить ваш текущий контроллер и добавить другой через контекстное меню (щелкните правой кнопкой мыши, Добавить)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...