说我有我的观点并且正在传递someModel
,其属性为list<someObjects>
。
如果我有一个div并且只想在列表的计数大于0时显示它,if语句是否是在我的剃刀中显示这个的“行业标准”方式?
答案 0 :(得分:1)
使用razor if
语句控制DOM的呈现方式没有任何问题。虽然,您可能希望确保实例化列表,但是您将获得异常“对象引用未设置为对象的实例。”
@if( Model.someList != null && Model.someList.Count > 0 )
{
<div>@someList.Count</div>
}
答案 1 :(得分:1)
在视图中使用像if
语句和循环这样的简单逻辑很好,而且很常见。
如果您发现自己使用任何其他逻辑,或者发现if
语句和循环嵌套在几个级别深处,这可能表明您的视图正在做很多事情,您应该考虑移动一些这个逻辑对你的控制器。
如果当天结束,决定在哪里划线是个人的事情,并且没有“行业标准”。
答案 2 :(得分:1)
您可以在剃刀视图中写if
条件,因为
The Razor syntax is a template markup syntax, based on the C# programming
language,that enables the programmer to use an HTML construction workflow.
Instead of using the ASP.NET .ASPX markup syntax with <%= %>/@ symbols to
indicate code blocks, Razor syntax starts code blocks with a @ character
and does not require explicit closing of the code-block.
答案 3 :(得分:0)
不,没有“标准”处理方式。当然,您可以使用if语句。但是,foreach(如果您计划迭代内容)只要列表为空(但如果它为null)则工作正常。
更好的方法是使用Editor / DisplayTemplate来渲染集合,如果集合为null或为空,它将自动处理集合。
另一种方法是使用带有空合并运算符的foreach,如果集合可以为null,则在这种情况下创建一个空列表。
您必须考虑各种选项,以便决定哪种方案最适合您的情况。