Как разместить данные на главной странице? - PullRequest
8 голосов
/ 03 июня 2009

Как поместить строго типизированный объект в ASP.NET MVC на главную страницу?

Есть ли у вас класс ViewModelBase, который содержит информацию главной страницы и наследуется от нее для каждой модели представления, или есть лучший подход?

Ответы [ 3 ]

10 голосов
/ 03 июня 2009

Alex

Я думаю, что вы спрашиваете: «Где мой контроллер главной страницы?»

Посмотрите на следующую ссылку. В нем объясняется, как создать «Application Controller», абстрактный класс, который может быть унаследован вашими другими контроллерами, так что вам нужно будет написать код только один раз, когда вы добавите необходимые данные главной страницы в представление.

Передача данных для просмотра главных страниц:
http://www.asp.net/learn/MVC/tutorial-13-cs.aspx

Также обратите внимание на следующую ссылку, которая объясняет, как реализовать частичные представления и субконтроллеры в ASP.NET MVC:

Частичные запросы в ASP.NET MVC
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

3 голосов
/ 04 июня 2009

Именно такой подход я использую. Иметь базовый класс MasterViewData, содержащий информацию, которая может быть общей для всех страниц и используется для визуализации главной страницы (вошел в систему, когда пользователь не использует встроенную аутентификацию, сообщения на уровне страницы). Все остальные мои классы данных производных от него.

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

Мне любопытно, есть ли другие варианты, но этот подход определенно сработал для меня.

0 голосов
/ 26 января 2011

Мы используем аналогичную базовую ViewData, особенно для крупных общедоступных сайтов, ориентированных на контент, где у вас происходит множество общих вещей с пользовательским интерфейсом.

Хитрость, которую мы используем для введения общего бита, заключается в использовании ActionFilter для внедрения MasterPageViewModel вокруг возврата наших контроллеров. Это немного чище, чем наличие специального класса контроллера с переопределенным методом представления, поскольку есть места, где вы не хотите / не нуждаетесь. И вся композиция по наследству вещь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...