我需要你对C#语法的帮助:
这是我的实际代码:
<div class="class">
<h5>MySuperTitle</h5>
<ul>
@if (Ms.Cs.value1 != null)
{
<li> My Li1 <span>@Ms.Cs.value1</span> </li>
}
@if (Ms.Cs.value2 != 0)
{
<li> My Li2 <span>@Ms.Cs.value2</span> </li>
}
@if (true)
{
<li> My Li3 <span>--</span></li>
}
@if (Ms.Cs.value4 != 0)
{
<li> My Li4 <span>@Ms.Cs.value4</span></li>
}
@if (Ms.Cs.value5 != null)
{
<li> My Li5 <span>@Ms.Cs.value5</span></li>
}
</ul>
</div>
我想要的是在&#34; MySuperTitle&#34;上添加@if条件。如果没有&#34; sub&#34;也可以隐藏它。值。
我是否要添加@if (Ms.Cs.value1 != null) || (Ms.Cs.value2 != 0) || (Ms.Cs.value4 != 0) .....
?
还是有更好的语法? 非常感谢
答案 0 :(得分:2)
您可以在渲染功能代码块中单独确定。
请注意,您可以使用相同的开口括号使您的Razor代码更简洁:
<div class="class">
@{
Boolean hasAnyData = Ms.Cs.value1 != null || Ms.Cs.value2 != 0 || Ms.Cs.value4 != 0 || Ms.Cs.value5 != null;
}
@if( hasAnyData ) {
<h5>MySuperTitle</h5>
<ul>
@if (Ms.Cs.value1 != null) {
<li> My Li1 <span>@Ms.Cs.value1</span> </li>
}
@if (Ms.Cs.value2 != 0) {
<li> My Li2 <span>@Ms.Cs.value2</span> </li>
}
@if (true) {
<li> My Li3 <span>--</span></li>
}
@if (Ms.Cs.value4 != 0) {
<li> My Li4 <span>@Ms.Cs.value4</span></li>
}
@if (Ms.Cs.value5 != null) {
<li> My Li5 <span>@Ms.Cs.value5</span></li>
}
</ul>
}
</div>
答案 1 :(得分:0)
我假设您正在使用ViewModel。如果是这样,在ViewModel中,您可能希望这样做:
public bool Value1Exists
{
get
{
return Value1 != null
}
}
...
public bool HasItems
{
get
{
if (Value1Exists || Value2Exists || ...)
return true;
else
return false;
}
}
然后在你的剃须刀视图中:
@if(Ms.HasItems) {
<h5>MySuperTitle</h5>
<ul>
@if (Ms.Value1Exists) {
...
}
...
</ul>
}