Default.aspx не выполняется в проекте ASP.NET с разделами MVC - PullRequest
7 голосов
/ 30 апреля 2009

Мое приложение - это в основном приложение ASP.NET, в которое я добавляю раздел MVC.

Моя страница Default.aspx (без кода) имеет простой Response.Rirect для страницы StartPage.aspx, но по какой-то причине MVC вступает во владение, и я не попадаю на страницу StartPage.aspx. Вместо этого я перенаправлен в мой первый и единственный раздел MVC, который является зарегистрированным маршрутом, который я зарегистрировал на странице global.asax.cs (Альбомы).

Есть ли способ указать MVC оставить мои запросы к корню "/" в качестве документа по умолчанию IIS 7 ... в данном случае Default.aspx?

Это то, что есть в моем RegisterRoutes:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Albums","{controller}/{action}/{id}",
    new { controller = "Albums", action = "Index", id = "" });

Ответы [ 3 ]

7 голосов
/ 30 апреля 2009

Если вы удалите контроллер по умолчанию из вашего второго маршрута, он больше не будет совпадать с "/", и маршрутизация будет игнорировать запросы для "/", оставляя их для обычного конвейера ASP.Net для обработки

Итак, измените ваши маршруты на:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute("Albums","{controller}/{action}/{id}",
     new { action = "Index", id = "" });

Это должно решить вашу проблему!

1 голос
/ 18 февраля 2011

IIS-страница default.aspx обслуживается, потому что это документ по умолчанию. MVC будет пусть страница default.aspx обрабатывает запрос, если она поняла, что запрос был для default.aspx (например, "http://foo.com/default.aspx"). Это не относится к этому, хотя в этом сценарии (" http://foo.com"), чтобы вы могли добавить это до значения по умолчанию путь, чтобы достичь того, что вы после

// ignore "/"    
routes.IgnoreRoute("");

// default route
routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", 
                      id = UrlParameter.Optional } // Parameter defaults
            );
0 голосов
/ 30 апреля 2009

Вы можете указать MVC игнорировать Default.aspx следующим образом:

routes.IgnoreRoute("Default.aspx");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...