Настройка ASP.NET MVC - наследовать или изменять платформу - PullRequest
0 голосов
/ 20 июля 2009

Если вы хотите изменить способ обработки маршрутов, можете ли вы сделать это в проекте MVC ИЛИ Нужно ли изменять MVC Framework?

Например, допустим, у вас есть стандартный код в RegisterRoutes из Global.asax.cs:

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

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

}

Но давайте скажем, что вы действительно хотите, чтобы ваш пользовательский класс перехватывал все входящие запросы и направлял их особым образом. Можно ли это сделать с помощью Inheriting из класса инфраструктуры MVC с последующей настройкой, или вам действительно нужно изменить код инфраструктуры?

1 Ответ

5 голосов
/ 20 июля 2009

Расширение, вам просто нужно написать собственный RouteHandler.

Посмотрите на:

ASP.NET MVC, управление структурой URL

Разработка пользовательского RouteHandler

Или другой планет в сети.

EDIT:

Вы можете сделать еще больше, расширив RouteBase и добавив его в маршруты.

routes.Add("CoolRouter", new CoolRouter());
...