2010-06-22 10 views
1

В настоящее время у меня есть приложение ASP.NET MVC, которое существует. Я хочу добавить небольшую мобильную секцию на сайт. Я хочу, чтобы это было очень просто и интегрировало http://mdbf.codeplex.com/ в мой проект. Затем на Home/Index проверьте, являются ли мобильные, затем переадресуйте их на мобильный контроллер (http://mysite.com/mobile/index).ASP.NET MVC MOBILE Controller Route to Subdomain

Однако, я также хочу, чтобы настроить, если они печатают http://m.mysite.com он будет автоматически отображать мобильный/индекс не имея URL быть (http://m.mysite.com/moble/index. Кроме того, предположим, что у меня был другой способ действия в мобильном контроллере. Я хотел бы быть в состоянии чтобы сделать http://m.mysite.com/MobileList вместо того, чтобы делать http://m.mysite.com/Mobile/MobileList

Любые мысли о том, как это сделать? Мне нужно было бы путаться с маршрутами? В настоящее время я просто использую стандартный контроллер/действие/путь id, который поступает по умолчанию. Я стараюсь держать это как можно проще.

ответ

4

Вам действительно нужен отдельный контроллер? Мы делаем что-то muc h нравится в this post. Мы используем один и тот же контроллер, но разные виды и настраиваемый ViewEngine для выбора. Легко, работает и не требует отдельного URI.

+1

+1. Я согласен с Крейгом. Если вы хотите, чтобы все было проще, поддерживайте одни и те же контроллеры для мобильных и настольных версий и пусть (настраиваемый) ViewEngine будет обслуживать разные представления на основе useragent и/или запрошенного домена. – PanJanek

+0

Проблема, с которой я сталкиваюсь, заключается в том, что нет возможности всегда гарантировать мобильность. То, что я видел, это ребята на http://mobile.site.com, которые заставят их перейти в мобильный режим (думаю, будет направлять их на мобильный контроллер)? – aherrick

+0

Если вы хотите * force * mobile, вы добавляете эту функцию * после *, вы получаете автоматическое определение работы. Мы делаем это с помощью печенья. На практике он используется только для тестирования; auto-detect всегда работает для других случаев. Ваши потребности могут быть разными. –