使用Razor我想根据模型的布尔属性有条件地将一些内容包装在<span>
元素中。我的猜测是我需要使用Templated Razor Delegates,但我发现让它们正确是很棘手的。
我的模型类似于:
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>
答案 0 :(得分:3)
我总是用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
}
答案 1 :(得分:1)
你可以在你的编辑器模板视图中使用Razor
@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
}
}