我需要一次访问视图 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 中的模型数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL 视图或表

如何在 Swift 中访问多个视图控制器中的数据?

多个时如何以编程方式访问相对布局中的文本视图或进度条?

访问同一视图页眉或页脚部分中的 Drupal 视图参数。

LeetCode 540. 有序数组中的单一元素(二分+异或技巧) / 1380. 矩阵中的幸运数 / 1719. 重构一棵树的方案数

SSIS - OLE DB 目标 - 表或视图加载与快速加载