Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 在使用范围中阻止asp.net mvc Html创建_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 在使用范围中阻止asp.net mvc Html创建

Asp.net mvc 3 在使用范围中阻止asp.net mvc Html创建,asp.net-mvc-3,Asp.net Mvc 3,我使用返回IDisposable的HTML帮助程序来创建我在应用程序中经常需要的特定DIV结构。此类的构造函数创建打开的div,而Dispose方法创建关闭的div。现在我需要保护我的应用程序,我不希望在某些情况下创建此结构,但我还需要在使用和结束之间生成的每种HTML,如果其范围也未呈现 我做的第一件事是用dummy替换ViewContext中的TextWriter: _helper.ViewContext.Writer = new StringWriter(new StringBuilder

我使用返回IDisposable的HTML帮助程序来创建我在应用程序中经常需要的特定DIV结构。此类的构造函数创建打开的div,而Dispose方法创建关闭的div。现在我需要保护我的应用程序,我不希望在某些情况下创建此结构,但我还需要在使用和结束之间生成的每种HTML,如果其范围也未呈现

我做的第一件事是用dummy替换ViewContext中的TextWriter:

_helper.ViewContext.Writer = new StringWriter(new StringBuilder());
它适用于直接使用ViewContext编写器呈现HTML的每段代码,但不适用于其他代码(原始HTML和其他帮助程序)


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

我担心目前无法阻止使用块呈现
的内容。这并不是这个街区的初衷。如果你想防止某些东西被渲染,你可以考虑使用<代码>如果是< /C> >语句。

< P>恐怕现在无法使用< /Cord>Bug来阻止<代码>的内容。这并不是这个街区的初衷。如果你想防止某些东西被渲染,你可以考虑使用<代码>如果是< /C> >语句。

< P>我没有示例代码,这个想法很难处理,但是如果你有无数的东西需要确保,并且没有时间添加条件逻辑,那么它可能会起作用。
如果您使用应用程序的Response.Filter删除html会怎么样?然后,在构造函数和dispose方法中,如果用户未被授权查看内容,则输出一些易于查找的元素,在流发送到浏览器之前,您可以使用正则表达式替换这些元素,或者使用Html Agility Pack解析/修改DOM。

我没有示例代码,这个想法很粗糙,但如果你有大量的这些东西需要保护,而没有时间添加条件逻辑,那么它可能会起作用


如果您使用应用程序的Response.Filter删除html会怎么样?然后,在构造器和dispose方法中,如果用户未被授权查看内容,则输出一些易于查找的元素,您可以在将流发送到浏览器之前使用正则表达式替换这些元素,或者使用Html Agility Pack解析/修改DOM。

完全同意您的观点,但如果要使用这些元素,我确实有很多地方,我完全同意你的观点,但我确实有一千个地方,如果它被使用,我会尝试黑客过滤的方法。