如何简化这个剃刀的表情:
@if (Model.CarImages == null)
{
<text>var CarImages = [];</text>
}
else
{
<text>var CarImages = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages));</text>
}
答案 0 :(得分:2)
我想理想的方法是让null
永远不会成为public IList<SomeType> CarImages { get; set; } = new List<SomeType>();
。在模型中初始化它:
var CarImages = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages));
我主要猜测类型,使用您正在使用的任何集合/对象。但是关键是要初始化它。但是,如果要填充它,请确保始终设置有效列表。即使是空的。
那么您的视图就更简单了:
with open(path + '\\' + file, "rU") as f, open(path + '\\' + file + '.fixed', "w") as o:
reader = csv.reader(f, delimiter=',', dialect="excel")
writer = csv.writer(o, dialect='excel')
for row in reader:
# fix the formatting of the row here
writer.writerow(row)
基本上,将逻辑尽可能地移至模型。该视图除了绑定模型数据外,应该做的很少(如果有的话),它不必内部检查该数据的有效性。该模型对此负责。
答案 1 :(得分:0)
您可以使用简写的if语句来写这个:
<text>
var CarImages = @(Model.CarImages == null ? [] :
Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.CarImages)));
</text>