使用 Razor 帮助程序有条件地包装内容
本文关键字:包装 有条件 Razor 帮助程序 使用 | 更新日期: 2023-09-27 18:35:02
使用Razor,我想根据模型的布尔属性有条件地将一些内容包装在<span>
元素中。我的猜测是我需要使用模板化剃刀代表,但我发现要正确处理它们很棘手。
我的模型是这样的:
public class Foo
{
public bool IsBar { get; set; }
}
在我看来,我希望能够使用类似于以下内容的东西:
<a href="/baz">
@Html.WrapWith(Model.IsBar, "span", @This content may be wrapped, or not)
</a>
它将呈现的位置:
<!-- Model.IsBar == True -->
<a href="/baz">
<span>This content may be wrapped, or not</span>
</a>
<!-- Model.IsBar == False-->
<a href="/baz">
This content may be wrapped, or not
</a>
我总是用span包装内容,让css处理所有的表示逻辑,如果有的话
<a href="/baz">
<span class="@(Model.IsBar ? "bar" : "")">This content may be wrapped, or not</span>
</a>
并将 css 规则应用于.bar
span.bar
{
//some style rules
}
您可以使用 Razor 在编辑器模板视图中执行 If
@if(Model.IsBar)
{
<span>This content may be wrapped, or not</span>
}
else
{
This content may be wrapped, or not
}
更新
或者你可以做你的自定义帮助程序
@helper Foo(bool bar)
{
@if(bar)
{
<span>This content may be wrapped, or not</span>
}
else
{
This content may be wrapped, or not
}
}