为剃刀局部定义ViewModel,如果只有一个则显示表单,如果有多个则显示表
本文关键字:如果 显示 表单 剃刀局 定义 ViewModel 有一个 | 更新日期: 2023-09-27 18:06:03
我需要创建一个局部视图与MVC,将显示项目列表,如果多于一个或html表单,如果只有一个。
我应该为这个部分创建一个ViewModel吗?
public Product Product { get; set; }
public IEnumerable<Product> Product { get; set; }
或者我发送列表会更好吗?如果我只是发送列表,我是否能够将第一个(也是唯一一个)项绑定到表单?
目标是将单个产品属性绑定到表单中,如果只有一个,如果有多个,则循环通过它们并输出到html表中。
如果模型包含单个属性-称为Products
,因为它是一个集合,对我来说似乎更简单。在视图中,测试其Count()
并呈现表单或表。绑定不会有问题——如果Count() == 1
,只拿First()
项。
如果你有两个属性,如果它们都有数据你会怎么做?如果单值属性中的产品不同于集合中的第一个产品,该怎么办?哪一个赢了?
您可以通过在控制器或模型本身上实施业务规则来解决这些问题——但是如果您只有一个集合,则可以完全避免这些问题。