簡體   English   中英

MVC 3在一個視圖中顯示來自不同模型的數據

[英]MVC 3 Display data from different Models in the one View

在MVC 3視圖中,我想顯示單個合同和聲明列表,用戶將能夠創建新的聲明。 我為Contract和Claims創建了一個不同的視圖,我如何合並它們,以便只有一個視圖。


達林,

當視圖查找兩個字符串時,如何傳遞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'是'type',在給定的上下文中無效。

數據綁定到此處的合同視圖

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

如何將數據綁定到類型為IEnumerable<Models.Claims>PartialView _Claim

您可以定義一個視圖模型來包裝這兩個模型:

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)

然后定義ContractClaim模型的顯示模板( ~/Views/Shared/DisplayTemplates/Contract.cshtml~/Views/Shared/DisplayTemplates/Claim.cshtml )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM