gpt4 book ai didi

asp.net-mvc - MVC 3 在一个 View 中显示来自不同模型的数据

转载 作者:行者123 更新时间:2023-12-05 00:37:02 25 4
gpt4 key购买 nike

在 MVC 3 View 中,我想显示单个契约(Contract)和声明列表,用户将能够创建新声明。我为契约(Contract)和 claim 创建了不同的 View ,如何合并它们以便只有一个 View 。

达林,

当 View 正在寻找两个字符串时,如何传递 MyViewModel 的实例?

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

谢谢

我使用的是 PartialViews Html,但我看不到如何将模型作为参数传递。

契约(Contract) View
@model Portal.Models.Contracts
@使用 Portal.Models

显示数据。
<div>
@{
Html.RenderPartial("_Claim", Portal.Models.Contracts);

}
</div>

我收到错误 CS0119:“Models.Contracts”是“类型”,在给定的上下文中无效。

数据在这里绑定(bind)到合约 View
public ActionResult Details(int id)
{
return View(_repository.GetContract(id);
}

数据如何绑定(bind)到 PartialView _Claim类型为 IEnumerable<Models.Claims> ?

最佳答案

您可以定义一个 View 模型来包装这两个模型:

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

然后让您的 Controller 操作将 MyViewModel 的实例传递给 View ,并在此 View 中使用显示模板:
@model MyViewModel

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

然后为 Contract 定义显示模板和 Claim模型( ~/Views/Shared/DisplayTemplates/Contract.cshtml~/Views/Shared/DisplayTemplates/Claim.cshtml )。

关于asp.net-mvc - MVC 3 在一个 View 中显示来自不同模型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7495583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com