2010-02-20 4 views
1

Я до сих пор печально немного n00bish, когда дело доходит до .NET MVC. У меня есть частичный вид навигации, который вызывается из MasterPage, где я хотел бы получить список данных. Этот частичный вид находится в папке «Общие» и, следовательно, не имеет контроллера. Как мне получить данные, чтобы он мог отображать список?Получить данные для общего частичного просмотра

Благодаря

Более конкретно, я хочу сделать что-то вроде этого (псевдокод):

<ul> 
<% foreach (item in ListOfItems) { 
    Response.Write(formattedListItem); 
} %> 
</ul> 
+0

для записи, ни одно из этих решений не работало, поэтому я просто добавил его в: \ – Jason

ответ

1

[редактировать] Новая полезно ссылку теперь, когда я знаю всю историю

http://www.superexpert.com/blog/archive/2008/08/12/asp-net-mvc-tip-31-passing-data-to-master-pages-and-user-controls.aspx

+0

все это хорошо и хорошо, но мне нужно его для частичного просмотра SHARED. я могу получить данные для тех, которые не используются ....:/ – Jason

+0

Почему это было бы иначе? – pdr

+0

Я вызываю общий вид с моей главной главной страницы, у которой нет контроллера или данных, чтобы передать его. Мне нужно получить данные ... Иногда mvc может быть настолько расстроен – Jason

0

Вы передаете модель просмотра так же, как и для обычной страницы. Только вместо того, чтобы передавать его при вызове View (...) в контроллере, вы используете вспомогательный метод. Что-то вроде:

<% Html.RenderPartial("~/Views/Shared/Navigation.ascx", Model.MenuItems); %> 

данные, которые вы передаете в (Model.MenuItems в данном случае), вероятно, происходят из модели View, в котором вы используете частичный вид (как это имеет место в приведенном выше примере).

+0

Ну, это вызывается с главной страницы, которая не имеет доступа к каким-либо данным ... – Jason

0

Просто используйте RenderAction. RenderAction будет вызывать метод на выбранном контроллере и получать результаты, которые вы хотите отобразить. Вы даже можете вернуть PartialView из этого метода.

<% Html.RenderAction("actionName", "controllerName"); %> 

Надеюсь, что это поможет.

+0

Я не получаю опцию 'RenderAction' в intellisense из' Html.' – Jason

Смежные вопросы