1
2
当您创建ASP.Net MVC视图(页面)时,它从一个类继承,正如您所说的ViewPage,该类反过来从ASP.Net WebForms(System.Web.UI.Page)的页面类继承,并实现IViewDataContainer接口(从MVC)。
总之,IHttpHandler有一个名为ProcessRequest的方法,该方法接受HttpContext实例。 不 神奇,但你明白了)-这个类是新的(你的ViewPage),它有几个被调用的方法-一些连接母版页等等,其中一个会以某种方式读取.aspx页面,所有正常的输出都被包装在响应调用中。Write和其他将作为C#代码运行(并且,<%=…%>将转换为Response.Write调用)-我相信这种解析是通过正则表达式完成的。 请注意,我不是这方面的专家,而且很可能在技术上是错误的(嘿,有人可以随意发表一个更好的回复,我试着给出一般性的理解),但它应该给出这方面的整体和一般性的理解。 编辑:我还要补充一点,当您通过控制器类返回ViewResult时,它最终将调用一个方法(我相信它被称为Execute),该方法来自它继承的ActionResult类,然后将启动一个选择正确的ViewEngine的过程,默认的ViewEngine是WebForms one,这就需要整个过程,尤其是这些巨大的编辑混乱。 @赫尔曼特的评论
每隔一段时间,您的<%…%&燃气轮机;在所有这些响应之间执行的调用。写入调用。 下面是一个例子
注意:当然,如果你的HTML中有“挂起”的话,会有很多事情发生,还有换行符、制表符缩进等等,但这是一般概述。 我希望这有帮助。 |
2
1
在需要的地方输出数据。只需将视图本身视为数据的html模板即可。 |
3
1
Mark刚刚指出了这一点,但要使用您的代码示例,您的控制器中会有如下内容:
|
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |