【发布时间】:2014-10-31 13:54:53
【问题描述】:
我有一个 cshtml 视图链接到我的数据库中一个表的模型的控制器,但我需要为每个循环执行一个引用第二个表的第二个模型的循环。由于无法在页面顶部设置 2 个模型 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>
虽然这不是大声的,因为我使用的是变量之类的类型。所以我要问的是是否有办法将 type:IEnumerable<MVCapp.Models.COOKIE_JARS 设置为变量或第二个模型,或者是否有一种完全替代的方法可以通过我试图尝试的第二个数据库表实现这种循环。
【问题讨论】:
-
创建一个具有 2 个属性的视图模型来封装您的 2 个模型或使您的模型成为
Tuple<Model1,Model2>。 -
哦,使用元组作为模型,从来没有想过。有点脏,我喜欢 :)。
-
使用
Tuple<Model,Model2>方法我得到不包含GetEnumerator的公共定义使用IEnumerable<Tuple<Model1,Model2>>似乎没有解决这个问题以及Tuple<IEnumerable<Model>,IEnumerable<Model2> -
我通过在我的 foreach 循环中将
Model更改为Model.Item1来解决此问题。 -
@RyeNyeTheWebSiteGuy 老实说,我不建议使用这种技术,如果你使用 ViewModel 会好很多。使用 Tuple 方法很脏,如果你需要来自第三个 Model 的信息会发生什么?
标签: c# asp.net-mvc-4 razor view foreach