我需要一次访问视图 2 或 3 或 n 中的模型数据
Posted
技术标签:
【中文标题】我需要一次访问视图 2 或 3 或 n 中的模型数据【英文标题】:I need to access model data in a view 2 or 3 or n at a time 【发布时间】:2013-11-13 00:08:57 【问题描述】:大家好:我一直在努力处理 MVC 的某些部分,尤其是当我的视图有多个并排的 div 时,我需要在视图中使用来自控制器的数据来显示模型数据/实体。
Left Div(客户端一) Right Div(客户端二) 左分区(客户端三)右分区(客户端四)
我正在将一个简单的模型从控制器传递给我的视图。无论我如何尝试,似乎访问模型中“实体”/行的唯一方法是通过 foreach 并按顺序迭代它们。我真的需要通过索引值来获取“实体”,方法是将模型数据从 IEnumerable 转换为数组并获取实体 [n]。
这是可能的还是我不明白View和模型数据之间的关系。
这是我的控制器:
public ActionResult ClientView()
return View("ClientView", db.Clients.ToList());
我的模型是一个没有导航的典型客户端属性的简单列表:名字、姓氏、地址等。在视图中,我试图在左侧 div 中获取客户端 1,在右侧获取客户端 2 div,然后是一个新行并重新开始。
非常感谢
艾伦
【问题讨论】:
【参考方案1】:假设你的视图是强类型列表:
@Model List<MySoftware.Models.Client>
然后就可以通过索引访问客户端了:
Model[0]
Model[1]
Model[2]
这是可能的,因为 IList 接口允许您按索引检索项目,就像数组一样。 List 通常是首选方法,因为数组......嗯......有点过时了。
但是,更好的设计可能是将其简单地应用到您的 UI 代码中,因为这实际上是一个 UI 显示问题。比如:
@Model IEnumerable<MySoftware.Models.Client>
var i = 0;
foreach (var client in Model)
<div> [client details] </div>
i++;
if (i % 2 == 1)
<br/>
【讨论】:
Brendan:这两种方法都非常有效。更好的是,现在我对视图中的模型数据有了更多的了解。非常感谢!以上是关于我需要一次访问视图 2 或 3 或 n 中的模型数据的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 540. 有序数组中的单一元素(二分+异或技巧) / 1380. 矩阵中的幸运数 / 1719. 重构一棵树的方案数