分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

MVC从Controller到View的呈现

发布时间:2023-09-06 01:43责任编辑:董明明关键词:MVC

       当路由机制已经激活Controller并InvokeAction后,如果返回的是View, 则ViewResult基于View呈现的请求响应机制内部借助MVC提供的View引擎来实现对View的获取、激活和呈现。

       ASP.NET MVC提供的View引擎有两种,一种是传统的Web Form引擎(.aspx),另一种那个就是要讲的Razor引擎(.cshtml/vbhtml)。

       View引擎的核心是ViewEngine对象,它实现IViewEngine接口,IViewEngine定义了两个FindView和FindPartialView方法,根据指定的ControllerContext、View名称和布局文件名称获取对应的View和PartialView;还有用于释放View对象的ReleaseView方法。

       ViewEngines是一个类型为IViewEngine的ViewEngine的集合,它的静态只读属性Engines的类型是ViewEngineCollection。

       ViewEngineCollection中的FindView/FindPartialView方法返回的类型是ViewEngineResult。

       ViewEngineResult的只读属性View和ViewEngine属性表示的是找到的View对象和作为调用者的ViewEngine对象。在成功获取到对应View的情况下这两个属性会通过构造函数进行初始化。如果没有找到相应的View,则将表示搜寻位置的字符串列表传入另一个构造函数来创建返回的ViewEngineResult,只读属性SearchedLocation表示的就是这么一个搜寻位置列表,如下图所示(由于WebFormViewEngine排在RazorViewEngine之前,所有前者会被优先使用。):

        Razor引擎中的View和ViewEngine对应的类型为RazorView和RazorViewEngine。RazorView对应一个以.cshtml/.vbhtml文件定义的View文件,这样的文件通过ASP.NET的动态编译生成一个WebViewPage<TModel>类型。RazorView通过激活的WebViewPage<TModel>对象实现了对View的最终呈现。

MVC从Controller到View的呈现

原文地址:https://www.cnblogs.com/Vam8023/p/8453966.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved