MVC 3 Отображение данных из разных моделей в одном представлении - PullRequest
4 голосов
/ 21 сентября 2011

В MVC 3 View я хочу отобразить один контракт и список претензий, пользователь сможет создать новую претензию. Я создал другое представление для Контракта и утверждает, как их можно объединить, чтобы был только один вид.


Дарины,

Как передать экземпляр MyViewModel, когда представление ищет две строки?

public ActionResult Details(int id)
{
   MyViewModel myView = new MyViewModel ();
   return View(_repository.GetContract(id), myView); 
}

Спасибо


Я использовал PartialViews Html, но не вижу, как передать модель в качестве параметра.

Просмотр контракта @model Portal.Models.Contracts @using Portal.Models

Показать данные.

<div>
    @{
      Html.RenderPartial("_Claim", Portal.Models.Contracts); 

    }
</div>

Я получаю ошибку CS0119: «Models.Contracts» - это «тип», который недопустим в данном контексте.

Данные привязаны к договору. Смотреть здесь

public ActionResult Details(int id)
{
    return View(_repository.GetContract(id);
}

Как связаны данные с PartialView _Claim типа IEnumerable<Models.Claims>?

1 Ответ

6 голосов
/ 21 сентября 2011

Вы можете определить модель представления, которая обернет эти две модели:

public class MyViewModel
{
    public Contract Contract { get; set; }
    public Claim[] Claims { get; set; }
}

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

@model MyViewModel

@Html.DisplayFor(x => x.Contract)
@Html.DisplayFor(x => x.Claims)

, а затем определите шаблоны отображения для моделей Contract и Claim (~/Views/Shared/DisplayTemplates/Contract.cshtml и ~/Views/Shared/DisplayTemplates/Claim.cshtml).

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