哪种 ViewModels 方法更好:
1. 只需ICollection<T>
在 ViewModel 中有一个并在视图中访问它的属性,这几乎是我在 ASP.NET Forms 中所做的,如下所示:
public ICollection<Order> Orders {get; set;}
所以在视图中我会做这样的事情
@if(Model.Orders.Count > 0){
或
2. 为 ICollection 创建一个属性,Count
以便视图可以直接引用该值。
public ICollection<Order> Orders { get; set; }
public int OrderCount { get { return Orders.Count ; } }
然后在视图中
@if(Model.OrderCount > 0) {
或者也许是一个布尔属性HasOrders
来进一步减少视图中的逻辑?
编辑
我对这些评论感到有些惊讶,我接受这是主观的,但是关于是否使用字符串属性作为日期的问题也是如此,每个人都必须在某个地方开始学习。
我会多次使用该OrderCount
物业吗?然后if
是一个标签来显示实际计数。因此,它将比说客户电子邮件地址更频繁地使用,但如果有人建议我会感到惊讶
public string Email { get; set; }
做得太过分了。
尝试重新调整问题的焦点;我要确定的是 ViewModel 是否应该为视图所需的所有内容提供简单的属性——因此无需深入Model.Orders
到访问 Count。视图是否应该保持纯粹并且没有逻辑/“编程”