我想知道是否可以在将视图HTML发送到浏览器之前对其进行修改。
我想创建一个自定义标记编译器,我可以在视图中插入一个简单的标记<my-parsing-tag></my-parsing-tag>
,并将其替换为某些特定的HTML。
我已经使用OnActionExecuting
和OnActionExecuted
过滤器对上下文执行某些操作(更改ViewBags,查看名称,会话等),我也尝试在那里执行但是我不能找不到获取HTML的正确位置,我甚至不知道是否可以这样做。
是否有可能或者我需要将我的观点HTML存储在数据库中以完成我需要的工作?
修改
@Juan问道,为什么我需要它:
我正在使用号召性用语系统,用户可以在页面上放置一些特定的模态广告系列,只需使用这些简单标记或选择将显示该页面的页面。
之后,我会将选定的HTML附加到视图中,然后再将其发送给用户。此系统适用于无法编辑视图的用户,因为它们不能与HTML一起使用。
编辑2
经过一些研究后我试图实现自定义RazorView
,代码为here,带有索引视图HTML,但现在我有两个问题:
第一个是我的索引视图有一些来自数据库的HTML,并使用我的ViewModel上的vars放在那里,而不是放置在我的索引视图末尾的号召性用语HTML,它被放置在ViewModel变量之前。第二个问题是HTML被复制而不是被替换。以下是结果如何的图像:
答案 0 :(得分:1)
您可以使用HtmlHelper扩展名:
http://tech.trailmax.info/2012/08/creating-custom-html-helper-in-mvc3/
我建议如下:
它呈现的方式是HTMLHelper扩展的来源。您可以创建一个扩展方法,根据传递给它的信息呈现部分视图,或者根据所需的小部件有选择地调用的一组扩展方法。 / p>