Передача двух разных моделей в представление с ASP.Net MVC - PullRequest
2 голосов
/ 12 ноября 2009

Я пытаюсь настроить вид, который отображает две разные модели. Например, у меня есть представление «Детали», которое показывает детали клиента; который я передаю своей модели клиента. Я также хочу иметь раздел на странице под информацией о клиентах (я думал об использовании частичного представления), в котором перечислены их домашние животные (для практики ветеринара). Я попытался настроить частичное представление и в диалоговом окне, которое я указал, использовать модель «домашнее животное», но безуспешно в моей попытке. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 12 ноября 2009

Создайте класс, который содержит данные о клиенте и данные о питомце:

public class CustomerDetailsViewModel
{
    public Customer Customer { get; set; }
    public IList<Pet> Pets { get; set; }
}

Это ваша модель для представления. Внутри представления, используйте Model.Customer для своих данных клиента и передайте Model.Pets в ваше частичное представление, которое является строго типизированным, к IList<Pet>.

2 голосов
/ 12 ноября 2009

Частичный вид отлично подойдет для списка домашних животных. Просто создайте строго типизированный .ascx как:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PetList>" %>

Затем отобразите его на главной странице. Вы можете использовать тот же элемент управления списком домашних животных на других страницах.

1 голос
/ 12 ноября 2009

Создайте строго типизированный вид с типом

Pair<Customer, Pet> (or Pair(of Customer, Pet)) if using VB

или просто передать

Pair<Customer, Pet> 

объект в виде данных объекта.

Затем передайте объект Pet в частичное представление.

...