首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Razor Web页面渲染

Razor Web页面渲染
EN

Stack Overflow用户
提问于 2011-11-15 03:40:07
回答 1查看 367关注 0票数 1

我正在创建一个自定义网页基类(不要与web forms或MVC混淆),继承自System.Web.WebPages.WebPage。我想做的是在网页渲染时运行一些代码。在web表单中,我会重写Render方法来完成此操作;但是,我看到的可重写方法是RenderPage,它会在当前呈现的页面中呈现一个不同的页面。

有没有在渲染过程中运行的方法,或者这就是InitializePage方法的用途?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 04:20:19

Razor引擎并不是真的“渲染”。它基本上是一个代码生成器,可以将Razor页面转换为文字字符串(HTML)和代码块(表达式/代码)的可执行代码。它在生成的Execute()方法中执行此操作。

因此,在创建自定义模板时,可以覆盖Execute()方法并执行一些预处理或后处理,但不能真正影响生成的代码内部的任何内容。

另一方面,WebForms中的Render()更像是一个基于组件的接口,因为它可能会拦截来自任何控件的呈现,每个控件都有一个Render()方法,负责生成自己的输出。在Razor中,这并不是很有意义,因为没有控件(缺少分词)。

我建议您在ASP.NET临时文件夹中查看您的剃刀页面,并查看源代码。这将使您很好地了解生成的代码是什么样子,以及您可以在自定义模板中执行哪些潜在操作来拦截输出生成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8127082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档