【发布时间】:2014-09-02 03:31:46
【问题描述】:
我想创建一个简单的 HtmlHelper,我可以像这样使用它:
@using(Html.DisplayIf(Object object))
{
...
}
我尝试了here 建议的方法,但与提出该问题的人不同,我希望括号之间的内容根本不呈现,而不仅仅是隐藏。
有没有办法阻止文本编写者在括号之间写内容,或者其他适合解决我的问题的方法?
【问题讨论】:
标签: asp.net-mvc
我想创建一个简单的 HtmlHelper,我可以像这样使用它:
@using(Html.DisplayIf(Object object))
{
...
}
我尝试了here 建议的方法,但与提出该问题的人不同,我希望括号之间的内容根本不呈现,而不仅仅是隐藏。
有没有办法阻止文本编写者在括号之间写内容,或者其他适合解决我的问题的方法?
【问题讨论】:
标签: asp.net-mvc
已编辑
您可以使用此处描述的方法: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
)
【讨论】:
DisplayIf(this HtmlHelper htmlHelper, bool show) 呢?