Обязательные модели для просмотра - PullRequest
2 голосов
/ 09 мая 2011

Я хотел бы привязать две модели (скажем, классы ModelA и ModelB) к странице view.ascx.И у каждого из этих классов есть объекты List, к которым я хотел бы получить доступ.Я знаю, что мы можем получить доступ к одному классу, связав строго типизированную модель с одним из классов.Как связать другой класс?

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Просто создайте ViewModel - класс, содержащий все необходимые модели (в данном случае ModelA и ModelB).Затем привяжите представление к этой ViewModel и получите к нему доступ как model.ModelA.Property в своем представлении.

Редактировать: Вы писали, что и ModelA, и modelB имеют свои коллекции?Таким образом, вы создаете что-то вроде:

public class ABViewModel
{
    public ModelA A {get;set;}
    public ModelB B {get;set;}
}

Затем создаете его в контроллере как:

ABViewModel abvm = new ABViewModel();
abvm.A = new ModelA();
abvm.B = new ModelB();

и возвращаете ваше представление (строго типизированное в ABViewModel).

return View(abvm);

И получить доступ к вашим свойствам в представлении:

foreach (var item in model.A.CollectionProperty) // something like this

Или

model.B.Property // something like this

Т.е.вы можете получить доступ к .. ModelA и ModelB, потому что они теперь являются свойствами другого объекта - вашей новой модели.

Примечание: я не уверен, если вы используете model. или Model. в mvc2 для доступатвоя модельЭто model в MVC3.

2 голосов
/ 09 мая 2011

Вы пишете третий класс, объединяющий эти два списка:

public class MyViewModel
{
    public IList<Foo> List1 { get; set; }
    public IList<Bar> List2 { get; set; }
}

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

<% foreach(var item in Model.List1) { %>
    ...
<% } %>

<% foreach(var item in Model.List2) { %>
    ...
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...