Где должны быть разделены типы браузеров в мобильном приложении MVC ASP.NET? - PullRequest
4 голосов
/ 30 июня 2009

Я создаю то, что в первую очередь будет ориентированным на мобильный браузер приложением ASP.NET MVC. Хотя это будет предназначаться для настольного компьютера также в меньшей емкости. (Я довольно плохо знаком с MVC и мобильными приложениями.)

Мне интересно, каков наилучший способ разделения мобильных и настольных пользователей в приложении MVC.

Должен ли контроллер отвечать за проверку типа браузера? Или этот тип функциональности должен быть зарезервирован для просмотра?

Если проверено в представлении, может ли мастер-страница выполнить проверку? Знаете ли вы какие-нибудь хорошие примеры онлайн?

Обновление : Я только что обнаружил перегрузку метода View, который принимает строковый аргумент, указывающий используемую мастер-страницу.

Например:

public ActionResult Index()
{    
  if (isMobile())
      return View("Index", "Mobile", myObject);
  else
      return View("Index", myObject);
}

Для меня это говорит о том, что, по крайней мере, несколько человек из команды Microsoft ожидают, что в контроллере будут проводиться основные различия (например, мобильные и настольные ПК). (Есть большая вероятность, что я очень запутался в этом.)

Ответы [ 2 ]

1 голос
/ 01 июля 2009

Я думаю, что контроллер должен знать платформу, потому что вы можете получить много представлений на разных языках, некоторые представления для браузеров (мобильные), другое представление в Desktop App, другое представление может быть веб-службой, и все представления могут иметь разные потребности.

Если у вас есть несколько представлений, вы можете вызывать представления с параметрами, чтобы отметить тип представления:

Индекс (мобильный) и Индекс (рабочий стол), как он:

Index(string typeOfApp){
//prepare data, do querys, etc
if (typeOfApp=='Mobile'){
redirectoAction('IndexMobile',ds); 
//or 
return view('IndexMobile',ds)
}
return View('IndexDesktop',ds);
}

IndexMobile(DataSet ds){}

IndexDesktop(DataSet ds){}

Вы можете получить общий метод для вашего действия () и другое действие для каждого типа, Index -> Index4Mobile & Index4Browser & Index4Desktop

И во всех этих методах подготовьте или сделайте что-то особенное для каждой платформы или отдельное действие с несколькими видами (1 для платформы).

0 голосов
/ 30 июня 2009

Любой код, связанный с отображением вашего кода, должен существовать на самой странице через CSS и javascript. Ваши контролеры не должны ничего знать о том, как ваши данные будут отображаться на экране. Представления на самом деле ничего не должны знать об этом - они предоставляют только те данные, которые будет отображать ваш CSS.

HTML, который выкладывает ваш просмотр, описывает ваши данные и порядок их организации. Только CSS должен знать, как сделать его подходящим для любого устройства, которое его отображает.

Эта ссылка , заполненная javascript, должна помочь определить, какой мобильный браузер работает.

...