For Each循环使用MVC视图中的第二个数据库表模型
本文关键字:第二个 数据库 模型 视图 循环 Each MVC For | 更新日期: 2023-09-27 18:28:41
我有一个链接到数据库中一个表的模型的控制器的cshtml视图,但我需要为第二个表执行引用第二个模型的for each循环。由于无法在页面顶部设置两个模型,foreach (var row in model)
无法工作。
我需要像这个一样的东西
@model MVCapp.Models.COOKIE
@using MVCapp.Models;
@{
ViewBag.Title = "Update";
;
foreach (var row in IEnumerable<MVCapp.Models.COOKIE_JARS)
{
some code
}
}
<h2>Update</h2>
虽然这不是大声说出来的,因为我使用的是一个类似变量的类型。因此,我想问的是,是否有一种方法可以将类型IEnumerable<MVCapp.Models.COOKIE_JARS
设置为变量或第二个模型,或者是否有一个完全替代的方法可以通过我正在尝试的第二个数据库表实现这种循环。
最好的方法是创建一个ViewModel
,这个类将包含两个模型的信息。
您的视图决不能生成任何逻辑或从数据库中获取信息,这是控制器的目标。
因此,我们的想法是,您的控制器将进行查询,并将数据添加到ViewModel
对象中,然后将其发送到View。
示例:
您的ViewModel:
public class CookieEatersViewModel
{
public IEnumerable<Cookie> Cookies {get; set;}
public IEnumerable<Monster> Monsters {get; set;}
}
您的观点:
@model MVCApp.ViewModels.CookieEatersViewModel
<h2>Update</h2>
<p>Use the informations from your ViewModel here</p>
您的控制器:
public ActionResult Index()
{
CookieEatersViewModel cevm = new CookieEatersViewModel();
cevm.Cookies = repo.GetCookies();
cevm.Monsters = repo.GetMonsters();
return View(vm);
}