我想创建一个简单的HtmlHelper,我可以这样使用:
@using(Html.DisplayIf(Object object))
{
...
}
我尝试了建议here的方法,但与提出这个问题的人不同,我希望括号之间的内容根本不会被渲染,而不仅仅是隐藏。
有没有办法阻止文本编写者在括号之间写入内容,或者其他一些适合解决我问题的方法?
答案 0 :(得分:0)
<强>被修改强>
您可以使用此处描述的方法:Capture wrapped content in BeginForm style disposable html helper。 我已经将第一种方法应用到您的示例中。
public static class HtmlExtensions
{
public static HelperResult DisplayIf(this HtmlHelper html, Func<object, HelperResult> template, bool show)
{
return new HelperResult(writer =>
{
if (show)
{
template(null).WriteTo(writer);
}
});
}
}
您可以这样称呼它:
@* Will render *@
@Html.DisplayIf(
@<span>test1</span>, true
)
@* Will not render *@
@Html.DisplayIf(
@<span>test2</span>, false
)