У менеджера по стандартной сети из Ubuntu нет опции повторного набора для USB-модемов, которая является причиной для всех проблем
, Вот то, что я сделал для устранения моих проблем соединения с пламенем MTS.
Установка PPP Gnome, который является фронтендом для Выполнения WvDial
ниже команды в терминале для установки.
sudo Кв. - получает гнома ppp
установки, И для отключенного значка сети вот quickfix:
Есть пара вещей, которые меня беспокоят.
Терминология. ViewModel в данном случае представляет собой простые данные представления, которые заполняются и затем используются контроллером. View ничего не знает о контроллере, поскольку инфраструктура ASP.NET MVC отвечает за выбор контроллеров и соответствующие действия. Контроллер обрабатывает взаимодействие с пользователем. Я думаю, что это больше похоже на Passive View, чем на ViewModel (я предполагаю, что под ViewModel вы имеете в виду шаблон Model-View-ViewModel)
Подробности. Контроллер, заполняющий данные представления, не должен знать подробностей о том, как реализовано представление. Однако OrganisationViewModel.Country раскрывает ненужные детали (SelectListItem - это чистая деталь реализации представления). Таким образом, делая контроллер зависимым от деталей реализации представления. Я думаю, что это нужно изменить, чтобы этого не произошло. Подумайте об использовании некоторого объекта, который будет содержать данные для страны.
Надеюсь, это поможет.
Привет, после долгого просмотра веб-страниц я нашел решение своей проблемы
resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.www.route = ":module.findchennai.com"
resources.router.routes.www.defaults.module = "www"
resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route"
resources.router.routes.www.chains.index.route = ":controller/:action/*"
resources.router.routes.www.chains.index.defaults.controller = "index"
resources.router.routes.www.chains.index.defaults.action = "index"
Приведенный выше код отображает модуль с субдоменом
resources.router.routes.news.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.news.route = "news.findchennai.com"
resources.router.routes.news.defaults.module = "news"
resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.edu.route = "education.findchennai.com"
resources.router.routes.edu.defaults.module = "education"
resources.router.routes.edu.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.edu.chains.list.route = ":categ/:page"
resources.router.routes.edu.chains.list.defaults.controller = "index"
resources.router.routes.edu.chains.list.defaults.action = "category"
resources.router.routes.edu.chains.list.defaults.page = 1
resources.router.routes.news.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.news.chains.list.route = ":categ/:page"
resources.router.routes.news.chains.list.defaults.controller = "index"
resources.router.routes.news.chains.list.defaults.action = "category"
resources.router.routes.news.chains.list.defaults.page = 1
Это решает проблему, с которой я столкнулся, и теперь могу правильно сопоставить со следующими URL-адресами
http://news.mysite.com/27-08-09/sample.html
http://education.mysite.com/27-08-09/sample.html
Тем не менее, если кто-то знает, как оптимизировать приведенный выше код, дайте мне знать.
Как правило, неплохо создавать модели представления для объектов предметной области.Я не рассматривал каждую строчку кода, но одна вещь, которая привлекла мое внимание, - это конструкторы OrganisationViewModel. Я бы переписал его, используя:
public OrganisationViewModel() : this(new Organisation()) { }
public OrganisationViewModel(Organisation o)
{
Organisation = o;
InitCollections();
}
Это удаляет дублированный код, так как вам не нужно вызывать InitCollections ()
в обоих конструкторах. Конечно, это всего лишь мелочь, не имеющая отношения к общей идее.
Это очень похоже на рекомендуемую практику в книге Wrox Professional ASP.NET MVC , первая глава которой доступна бесплатно по указанному выше URL.
Начиная со страницы 100, у них есть раздел, посвященный ViewData и ViewModels .
Когда класс контроллера решает вернуть ответ HTML клиенту, он отвечает за явную передачу в шаблон представления всех данные, необходимые для отображения ответа. Шаблоны представлений никогда не должны выполнять какие-либо операции извлечения данных или логику приложения - вместо этого они должны ограничиваться только кодом визуализации, который управляется моделью / данными, переданными ему контроллером.
[...]
При использовании шаблона ["ViewModel"] мы создаем строго типизированные классы, которые оптимизированы для наших конкретных сценариев представления и которые предоставляют свойства для динамических значений / контента, необходимых для наших шаблонов представления. . Затем наши классы контроллеров могут заполнить и передать эти оптимизированные для представления классы в наш шаблон представления для использования. Это обеспечивает типобезопасность, проверку во время компиляции и intellisense редактора в шаблонах представлений.
Взято из «Главы 1« Ужин ботаника »из Professional ASP.NET MVC 1.0, написанной Робом Коннери и др., Опубликованной Wrox». Оригинал доступен по адресу http://tinyurl.com/aspnetmvc
Мы начали это делать, но наши контроллеры начали становиться чудовищными (поскольку наши ViewModels не обязательно отображались 1: 1 к нашей базе данных). Чтобы облегчить это, мы создали классы Mapper, которые создают ViewModel, а затем сопоставляют данные, привязанные к базе данных. Затем контроллер просто вызывает методы класса Mapper. Кажется, работает хорошо.