Каковы некоторые рекомендации по обнаружению мобильных устройств в mvc3 - PullRequest
0 голосов
/ 29 декабря 2011

Я разрешаю одному из своих сайтов перенаправлять определенные страницы на мобильные версии. Я читал сообщения в блогах Стива Сандерсона и Шиджу Варгезе об использовании атрибутов и 51degrees.mobi.

То, что я хотел бы, чтобы это происходило, это заданная страница, дилер-локатор, перенаправить на / mobile / дилер-локатор, если устройство является мобильным устройством. Для этого я создал зону с контроллером дилера и необходимыми видами. Я тестировал код напрямую, и он, кажется, работает правильно.

Когда я захожу на сайт с реального устройства или FF с измененным пользовательским агентом на iPhone 3.0, я перенаправляюсь на / mobile. Есть ли простой способ сопоставить маршруты страниц с мобильными маршрутами?

Я должен упомянуть, что на сайте используется isapi_rewrite, а на рассматриваемой странице есть правила, согласно которым / карта-дилера указывается на / дилер-локатор, а дилер-локатор является контроллером.

Я также заметил, что сообщения формы не работают должным образом, так что пока что получилось.

1 Ответ

0 голосов
/ 29 декабря 2011

Из сообщения в блоге Шиджу Варгезе (о котором упоминается ваш вопрос), метод класса RedirectMobileDevicesToMobileAreaAttribute:

// Override this method if you want to customize the controller/action/parameters to which
// mobile users would be redirected. This lets you redirect users to the mobile equivalent
// of whatever resource they originally requested.
protected virtual RouteValueDictionary GetRedirectionRouteValues(RequestContext requestContext)
{
    return new RouteValueDictionary(new { area = "Mobile", controller = "Home", action = "Index" });
}

может быть переопределено, чтобы позаботиться об этом.

В его примере все кажется отправленным на ~/Mobile/Home/Index, но вы можете отправить запрос куда угодно. Он создает новую таблицу маршрутов, эквивалентную той, которую вы определили бы в Global.asax.cs для своих немобильных маршрутов. Вы можете либо заменить всю таблицу маршрутов, либо пройтись по существующим маршрутам и вернуть словарь, содержащий только мобильные эквиланты.

...