Когда я буду использовать свой собственный RouteHandler?

Я понимаю, что в ASP.Net DynamicData (и, возможно, в обычном ASP или MVC) я могу предоставить свой собственный RouteHandler

routes.Add(new DynamicDataRoute("{table}/{action}.aspx") {
    RouteHandler = new CustomRouteHandler() 
});

public class CustomRouteHandler : DynamicDataRouteHandler
{
    public override IHttpHandler CreateHandler(DynamicDataRoute route, MetaTable table, string action)
    {
        // what kind of cool stuff should I add in here?
        return base.CreateHandler(route, table, action);
    }

    protected override string GetCustomPageVirtualPath(MetaTable table, string viewName)
    {
        // what kind of cool stuff should I add in here?
        return base.GetCustomPageVirtualPath(table, viewName);
    }

    protected override string GetScaffoldPageVirtualPath(MetaTable table, string viewName)
    {
        // what kind of cool stuff should I add in here?
        return base.GetScaffoldPageVirtualPath(table, viewName);
    }
}

Но может кто-нибудь объяснить, как бы я заполнил этот класс? (дайте пример кода)

Что бы я переопределил, чтобы сделать что-нибудь полезное?

Что я могу делать с моим собственным RouteProvider? Приведите мне примеры, когда это было бы полезно.

В качестве примера я хотел бы выполнить перенаправление 401 для некоторых таблиц, но продолжить поведение по умолчанию для других таблиц (конечно, в зависимости от роли или вошедшего в систему пользователя).


person Jason Marcell    schedule 20.11.2009    source источник


Ответы (1)


Вы можете использовать его для SEO (поисковой оптимизации) в любом количестве веб-приложений. То, что раньше можно было сделать с помощью перезаписи URL. Например, если вы должны создать движок блога и хотите иметь в URL-адресе ярлык, содержащий ключевые слова для вашей статьи, вы можете добавить его в качестве обработчика.

http://mysite.com/blog/cheap-umbrellas-in-san-diego.aspx

Затем вы можете создать обработчик маршрута для работы с этим конкретным шаблоном и искать свое сообщение по слагу (дешевые-зонтики-в-сан-диего) по сравнению с чем-то вроде идентификатора (/blog/post.aspx?id=123465)

person Sean    schedule 20.11.2009
comment
Спасибо. Вы делали что-нибудь подобное? Вы можете показать пример кода? - person Jason Marcell; 20.11.2009
comment
Прочтите это: chriscavanagh.wordpress.com / 2008/03/11 / - person Sean; 20.11.2009