Настройка ASP.NET MVC - наследовать или изменять каркас

Если вы хотите изменить способ обработки маршрутов, можете ли вы сделать это в проекте 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 ответ

Решение

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

Смотреть на:

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

Разработка Custom RouteHandler

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

РЕДАКТИРОВАТЬ:

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

routes.Add("CoolRouter", new CoolRouter());
Другие вопросы по тегам