如果我有一个想要在页面上显示的整数值,我可以通过多种方式实现:
<span>@Html.DisplayFor(modelItem => item.UserId)</span>
<span>@item.UserId</span>
Run Code Online (Sandbox Code Playgroud)
但是将其转换为显示值IF UserId!= 0的最佳方法是什么.但是如果UserId == 0,则显示一个空字符串.有没有办法在Razor语法中做到这一点,还是我需要前往代码?
为int创建扩展方法:
public static class IntExtensions
{
public static string EmptyIfZero(this int value)
{
if(value == 0)
return string.Empty;
return value.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
...然后在你的Razor视图中,执行:
<span>@item.UserId.EmptyIfZero()</span>
Run Code Online (Sandbox Code Playgroud)
<span>@((item.UserID == 0) ? "" : @item.UserID.ToString())</span>
Run Code Online (Sandbox Code Playgroud)
要么
<span>@if(item.UserID == 0) { <span></span> }
else { @Html.DisplayFor(m => item.UserID); }
</span>
Run Code Online (Sandbox Code Playgroud)
我想你可以用一个if条件做到这一点
<span>@if(item.UserID != 0) { @Html.DisplayFor(m => item.UserID); } //the browser would render empty string by itself
Run Code Online (Sandbox Code Playgroud)
要在不放置冗余的情况下呈现内容(如您所述)<span>,请使用@:- MVC3 Razor:在代码块中显示html和@:用于显示内容
<span>
@if(item.UserID == 0) { } //this is redundant too
else { @Html.DisplayFor(m => item.UserID);
}
</span>
Run Code Online (Sandbox Code Playgroud)
请注意,我已将其移至}下一行.ASP.Net MVC不接受它
<span>
@if(item.UserID == 0) { @:Some content with no html tag wrapper
}
else { @Html.DisplayFor(m => item.UserID);
}
</span>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17002 次 |
| 最近记录: |