访问ViewContext的编写器流

时间:2014-04-28 23:01:37

标签: asp.net-mvc asp.net-mvc-5 html-helper textwriter viewcontext

我正在为MVC5编写一个html帮助扩展。 我需要访问ViewContext的流来编辑它。 (像文本阅读器一样)

htmlHelper.ViewContext.Writer.Write("<div>");

有没有办法访问流;这样我就可以在最后一个&#34; div&#34;之上操作或添加一些HTML代码。示例中的标签?

我无法找到任何关于我在哪里可以找到文本作者写入的流的线索?

1 个答案:

答案 0 :(得分:0)

这取决于您使用的是什么视图引擎,但如果您编写一个html帮助程序,它将会更容易。见Creating Custom HTML Helpers

简单的html助手可以这样写:

@helper CustomDiv(var param1, var param2){
    Write("something to html encode & stuff");
    WriteLiteral("<div>something that is html</div>");
}

在Razor中,您也可以只调用@Write(),它会将字符串编码为HTML。如果你需要一个TextWriter,请引用Context.Response.Output但这不允许你像HtmlHelper一样操纵HTML内联 - 它更适合覆盖普通的处理程序。

或只是Output的{​​{1}}属性,它也是一个TextWriter