2012-12-28 15 views
2

有没有办法在不使用if-else语句的情况下刷新视图的内容? 例如,如果我使用表格列出一堆记录,但如果找不到行,则不需要标题:可能会显示一条消息,指示“找不到数据”。我想:有没有办法在不使用if-else语句的情况下刷新视图的内容?

if (records.count == 0) { 
    <div>No Data</div> 
    return; //flush/render view 
} 
//no else 
<table><tr><th>......</tr> 
foreach (var record in records) { 
    <tr><td>....</tr> 
} 
</table> 

有意义吗?或者我只是懒惰:我讨厌大量的嵌套代码,特别是在视图中,缩进不那么狡猾。

+0

在这种情况下,我通常会使用类型为“Record”的第二个视图。它使得代码更易于阅读,并且很大一部分时间我会在其他地方重复使用“Record”视图。 –

回答

2

尝试这样,它应该工作:

@if (records.count == 0) 
{ 
    <div>No Data</div> 
    return; 
} 

<table> 
    <tr><th>......</tr> 
    foreach (var record in records) 
    { 
     <tr><td>....</tr> 
    } 
</table> 

如果条件(records.count == 0)成立仅No Data将在Razor视图打印和随后的代码将永远不会被执行,该表将永远是所示。

+0

你确定* return *会起作用吗?在ASPX中它不会。它在剃刀?有记录吗? – usr

+0

它应该在剃刀中工作。 –

+0

它的工作原理!什么??哇!谢谢@Darin。我用aspx/ascx视图测试了它。 –

相关问题