2013-02-28 48 views
0

我使用一个HTML助手返回一个IDisposable来创建一个特殊的DIV结构,我经常需要在我的应用程序中。此类的构造函数在创建Dispose方法以创建打开div时关闭Div。现在我需要保护我的应用程序,并且我希望这个结构不是在某些情况下创建的,但是我也需要使用这种在使用和结束之间产生的各种HTML,如果它的范围也没有呈现。使用范围块asp.net mvc Html创建

我所做的第一件事就是更换的TextWriter找到诠释他用假ViewContext:

_helper.ViewContext.Writer = new StringWriter(new StringBuilder()); 

其每段代码,直接使用ViewContext作家渲染HTML而不是为别人打工(原HTML和其他帮助)

所以问题是:我们如何防止Asp.net视图在使用块的范围内呈现HTML?

回答

1

我没有任何示例代码给你,这个想法很骇人,但可能工作,如果你有这些东西你需要保护,并没有时间来添加条件逻辑。

如果您使用应用程序的Response.Filter去除html,该怎么办?然后在你的构造函数和处理方法中,如果用户没有被授权查看内容,请输出一些容易找到的元素,您可以使用正则表达式替换或使用Html Agility Pack来解析/修改DOM,然后将流发送到浏览器。

+0

完全同意你,但我确实有一千个地方,它会被使用,将尝试hackish过滤器的方法。 – VdesmedT 2013-03-08 10:55:04

3

恐怕目前没有办法阻止using块的内容被渲染。无论如何,这不是这个区块的原意。如果您想防止呈现某些内容,则可以考虑使用if语句。