gpt4 book ai didi

asp.net-mvc-4 - MVC4 ViewBag 还是 ViewModel 还是?

转载 作者:行者123 更新时间:2023-12-02 01:23:27 27 4
gpt4 key购买 nike

我需要将数据库中两个不同模型的列表形式的数据发送到 MVC4 项目中的 View 。

类似这样的事情:

Controller :

public ActionResult Index()
{
Entities db = new Entities();

ViewData["Cats"] = db.Cats.toList();
ViewData["Dogs"] = db.Dogs.toList();

return View();
}

查看:

@* LIST ONE *@
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.ListOneColOne)
</th>
<th>
@Html.DisplayNameFor(model => model.ListOneColTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.ListOneColThree)
</th>
</tr>

@foreach (var item in @ViewData["Cats"]) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ListOneColOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListOneColTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListOneColThree)
</td>
</tr>


@* LIST TWO *@
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.ListTwoColOne)
</th>
<th>
@Html.DisplayNameFor(model => model.ListTwoColTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.ListTwoColThree)
</th>
</tr>

@foreach (var item in @ViewData["Dogs"]) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ListTwoColThree)
</td>
</tr>

View 用于显示两个列表,每个模型一个列表。

我不确定最有效的方法是什么?

View 模型?

查看数据/查看包?

还有什么吗?

(请勿使用第三方建议)

更新:

此外,我已经尝试了一个多小时来实现建议 List<T> 的答案。 Viewmodel 没有任何运气。我相信这是因为我的 Viewmodel 看起来像这样:

public class GalleryViewModel
{
public Cat cat { get; set; }
public Dog dog { get; set; }
}

最佳答案

尝试解释您的问题和目标,以便我们(具体)知道您想要做什么。

我认为这意味着您有两个列表并且您想将它们发送到 View 。实现此目的的一种方法是将两个列表放入模型中并将模型发送到 View ,但您似乎已指定您已经有两个模型,因此我将采用该假设。

Controller

public ActionResult Index()
{
ModelA myModelA = new ModelA();
ModelB myModelB = new ModelB();

IndexViewModel viewModel = new IndexViewModel();

viewModel.myModelA = myModelA;
viewModel.myModelB = myModelB;

return View(viewModel);
}

查看模型

public class IndexViewModel
{
public ModelA myModelA { get; set; }
public ModelB myModelB { get; set; }
}

型号

public class ModelA
{
public List<String> ListA { get; set; }
}

public class ModelB
{
public List<String> ListB { get; set; }
}

查看

@model IndexViewModel

@foreach (String item in model.myModelA)
{
@item.ToString()
}

(抱歉,如果我的 C# 生锈了)

关于asp.net-mvc-4 - MVC4 ViewBag 还是 ViewModel 还是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313360/

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