1

假设我有我的观点,并someModellist<someObjects>.

如果我有一个 div 并且只想在列表的计数大于 0 时显示它,那么 if 语句是在我的剃须刀中显示它的“行业标准”方式吗?

4

4 回答 4

1

在渲染 DOM 时使用 razorif语句来控制它并没有错。虽然,您可能希望确保您的列表已实例化,否则您将收到异常“对象引用未设置为对象的实例”。

@if( Model.someList != null && Model.someList.Count > 0 )
{
 <div>@someList.Count</div>
}
于 2013-06-17T22:22:45.857 回答
1

在视图中使用简单的逻辑(如if语句和循环)很好,而且是很常见的事情。

如果您发现自己使用了任何其他逻辑,或者发现if语句和循环嵌套了好几层,这可能表明您的视图正在做很多事情,您应该考虑将其中的一些逻辑移动到您的控制器中。

归根结底,在哪里划定界限是个人的事情,没有“行业标准”。

于 2013-06-18T05:00:26.343 回答
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.
于 2013-06-18T05:04:07.597 回答
0

不,没有“标准”的方式来处理这个问题。当然,您可以使用 if 语句。但是,只要列表为空,foreach(如果您打算遍历内容)就可以正常工作(但如果它为空则不行)。

更好的方法是使用 Editor/DisplayTemplate 来呈现集合,如果集合为空或为空,它将自动处理集合。

如果集合可以为空,则另一种方法是使用带有空合并运算符的 foreach 以在这种情况下创建一个空列表。

您必须考虑各种选项,以决定哪一个最适合您的情况。

于 2013-06-18T04:11:19.183 回答