我如何简化这个剃刀表达式:
@if (Model.CarImages == null)
{
<text>var CarImages = [];</text>
}
else
{
<text>var CarImages = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages));</text>
}
发布于 2019-02-14 03:41:26
我想最理想的方法是让CarImages
永远不做null
。在模型中初始化:
public IList<SomeType> CarImages { get; set; } = new List<SomeType>();
我主要是猜测类型,使用你正在使用的任何集合/对象。但重点是初始化它。无论您如何填充它,请确保您总是设置一个有效的列表。即使它是一个空的。
那么你的视图就更简单了:
var CarImages = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages));
基本上,尽可能多地将逻辑移动到模型中。除了绑定到模型数据之外,视图不应该做更多的事情(如果有的话),它不应该在内部检查数据的有效性。模型对此负责。
发布于 2019-02-14 03:50:36
您可以使用速记if else语句来编写,如下所示:
<text>
var CarImages = @(Model.CarImages == null ? [] :
Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages)));
</text>
https://stackoverflow.com/questions/54678119
复制相似问题