我对 MVC 模式还很陌生,随着我使用这种逻辑进行更深入的开发,我遇到了一些我可以克服的问题,但我不确定我是否以正确的方式进行操作(最佳实践)。
所以问题:
我有一个View
接收Model
具有以下结构的 a:
public class MyViewModel
{
public string Title { get; set; }
public string Subtitle { get; set; }
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public List<MyItem> ListOne { get; set; }
public List<MyItem> ListTwo { get; set; }
public List<MyItem> ListThree { get; set; }
public List<MyItem> ListFour { get; set; }
public List<MyItem> ListFive { get; set; }
}
我希望仅当列表中有记录时才View
显示每个项目的第一项。List
所以我现在想做的View
是这样的:
<div>
@if(Model.ListOne != null)
{
<img src="@Html.DisplayFor(model => Model.ListOne.First().Filename)" style="max-height: 800px;max-width:800px; padding-bottom: 5px;" />
}
</div>
但是当我运行代码时,我收到一条错误消息System.InvalidOperationException: Sequence contains no elements
。所以这意味着,据我了解,首先完全渲染视图,然后解析其中的代码并转换为最终的 HTML 输出(这是它的工作原理吗?也可以在这里使用一些澄清)
那么,实现这一目标的最佳方法是什么?使用 MVC 时是否会失去灵活性?现在,感觉就是这样。当您将代码与 HTML“混合”时,这将更容易实现。不要误解我的意思,我很清楚使用设计模式给开发人员带来的好处,但是对于这个特殊的问题,它真的让我想知道它到底有多灵活。