我正在寻找一种用更少的代码行(也许 5 行)编写以下代码的方法。我想我可以做与所选类相同的事情,但这个 Razor 语法看起来不太漂亮。
<ul>
@foreach (var mi in Model.MenuItems) {
<li@(mi.Selected?" class=\"selected\"":null)>
@if (string.IsNullOrEmpty(mi.Title)) {
<a href="@mi.Href">@mi.Text</a>
} else {
<a href="@mi.Href" title="@mi.Title">@mi.Text</a>
}
</li>
}
</ul>
最佳答案
已在 ASP.NET MVC 4 中修复
参见http://weblogs.asp.net/jgalloway/archive/2012/02/16/asp-net-4-beta-released.aspx
条件属性渲染
如果您有一个可能为 null 的属性,过去您需要执行 null 检查以避免写出空属性,如下所示:
<div @{if (myClass != null) { <text>class="@myClass"</text> } }>Content</div>
现在 Razor 能够自动处理该问题,因此您只需写出该属性即可。如果为 null,则不写入该属性:
<div class="@myClass">Content</div>
因此,如果 @myClass 为 null,则输出如下:
<div>Content</div>
关于asp.net-mvc - 如何使用razor View 引擎简洁地创建可选的HTML属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800473/