Ошибка при перенаправлении в MVC Mobile Area с использованием 51Degrees.mobi - PullRequest
0 голосов
/ 23 февраля 2011

Я относительный новичок в MVC.Приложение, которое я написал, работает, и я постоянно настраиваю его, когда учусь.Недавно я играл с инструментами мобильного веб-сайта.Мне никогда не нужно было этого делать, поэтому я сделал столько поиска / чтения / мастеринга, сколько мог.Я начал с Microsoft Web App Toolkit, который оказался немного устаревшим, поэтому я продолжал читать и в конечном итоге переключился на использование библиотеки 51Degrees.mobi.

Я настроил его на основе нескольких сообщений:

  1. Стив Сандерсон - http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application
  2. 51 Руководство пользователя - http://51degrees.codeplex.com/wikipage?title=User%20guide
  3. ... и множество других сайтов и описаний, сосредоточенных вокруг одних и тех же основных пунктов.

Итак, вот что у меня есть, как описано мистером Сандерсоном.

  • Создана область MVC для моих контроллеров / представлений Mobile, которые в свою очередь создали файл MobileAreaRegistration.cs

Area - Mobile

  • ИзмененоMobileAreaRegistration.cs в этой области, чтобы указать контроллер по умолчанию и действие.

enter image description here

  • Включены компоненты 51Degrees в моем файле конфигурации.А именно ссылки на раздел groupGroup, раздел fiftyOne для включения перенаправления и httpModule.enter image description here

Я должен использовать следующий модуль IIS для отладки, хотя я использую Win7: enter image description here

Я также внес необходимые изменения в GlobalФайл .asax.cs, включающий первичное пространство имен, чтобы у приложения не возникало путаницы в отношении того, в какой области оно должно работать по умолчанию.(как указано в сообщении Стива Сандерсона).

Наконец, я установил эмулятор iphone и эмулятор Android, и код, который перенаправляет, находится в моем HomeController.У меня пока нет ничего конкретного для каждого устройства.Я все еще пытаюсь заставить перенаправление правильно сработать.

enter image description here

Когда я запускаю сайт в браузере рабочего стола (без перенаправления с мобильного устройства), он работает нормально.Когда я использую эмуляторы (или пытаюсь направить браузер рабочего стола на мобильный сайт), я получаю следующую ошибку.Это, конечно, кажется очевидным (MISSING CONTROLLER), но оно есть.Так чего я не вижу?

Запрошенная страница не найдена.(404)

System.Web.HttpException: Контроллер для пути '/ Mobile' не найден или не реализует IController.в System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext requestContext, Тип controllerType) в System.Web.Mvc.DefaultControllerFactory.CreateController (RequestContext requestContext, имя контроллера строки & ИД контроллера строки_контроллера (Http., IControllerFactory & factory) в System.Web.Mvc.MvcHandler.BeginProcessRequest (HttpContextBase httpContext, обратный вызов AsyncCallback, состояние объекта) в System.Web.Mvc.MvcHandler.BeginProcessRequest (вызов объекта HttpContext httpContext http.text.tv)..MvcHandler.System.Web.step, Boolean & Выполнено синхронно)

Второй набор глаз будет великолепен!Заранее спасибо за помощь.

1 Ответ

1 голос
/ 23 февраля 2011

ответил!

Проблема заключалась не в конфигурации мобильных инструментов и перенаправлении, а в пространстве имен раздела Mobile в самой области.

Мои пространства имен в моем мобильномКонтроллерами были Licensing.Web.Mobile.Controllers.Им нужно было Licensing.Web. Areas .Mobile.Controllers.

Как только я добавил «Области» в пространство имен, он работал как чемпион.

Я нашел это с немного большим копанием: Asp.NET MVC 2 и 404

...