2008-10-14 63 views
3

我正在写一个简单的CMS。如何拦截来自ViewResult的HTML,修改并提供它?

我希望能够加载视图,并将其包含在母版页中,然后扫描HTML以便我可以用自己的博客输出替换一些自定义标签(例如{{blog}}),然后将其提供给浏览器。

如何从ViewResult访问HTML以拦截它?

回答

3

听起来像你想写一个ActionFilterAttribute。此属性有以下方法:

  • OnActionExecuting - 调用前执行装饰作用
  • OnActionExecuted - 叫action方法被调用后,但ActionResult之前被渲染。
  • OnResultExecuting - 结果之前callled呈现
  • OnResultExecuted - 结果之后调用呈现

这里有一个例子,它返回任一视“内容 - JSON或XML数据类型“标题:Create REST API using ASP.NET MVC that speaks both Json and plain Xml

+0

此答案中的链接已经死亡:-( – 2016-05-09 20:24:43

+0

我已更正链接,转到我认为是原始来源的文章 – 2016-05-14 12:17:21

3

这会很棘手,因为ViewResult直接将其响应写入Response.Stream。因此,您可能必须处理Response.Filter属性以将ViewResult输出到MemoryStream,以便在返回ContentResult之前操作内容。所有这些都可能发生在OnResultExecuting中。

相关问题