ASP.NET MVC 中的视图生成实例分析 ASP.NET MVC 中的视图生成过程可以分为三个独立的部分:Controller、View 和 Model。Controller 负责控制用户的操作,View 负责控制呈现的内容,Model 负责表示处理的数据。 在 Controller 中,我们定义多个 Action,每个 Action 的返回类型一般是 ActionResult。在 Action 处理的我们返回对于视图的调用。MVC 会直接去找我们的视图吗?不会!从 Action 返回之后,MVC 会在 Views 文件夹下查看是否存在一个名为 _ViewStart.cshtml 的特殊文件,如果存在的话,就回执行这个文件。 _ViewStart.cshtml 文件的内容如下所示: ``` @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>@ViewBag.Title</title> </head> <body> @RenderBody() </body> </html> ``` 在上面的代码中,我们可以看到,_ViewStart.cshtml 文件中定义了一个布局页,布局页中包含一个 @RenderBody() 方法,该方法用于呈现内容页面的内容。 如果我们的页面比较复杂,在同一个视图中定义输出的内容会导致页面非常复杂,通过将页面划分为多个比较独立的组成部分,可以将一个复杂的页面拆分为多个子部分来呈现。比如页面的标题部分,页面的菜单,页面的脚注部分等等。 在 WebForm 中,解决这个问题的技术称为用户控件,在 MVC 中由两个技术来解决:分部视图和子 Action。分部视图不依赖于 Action,只能嵌入到其他独立视图中使用,你可以直接在视图文件夹中创建分部视图。在使用分部视图的页面中,使用 RenderPartial 方法调用分部视图。 子 Action 问题由于分布视图没有处理能力,只能继承主页面的数据进行呈现,如果需要有处理能力,怎么办呢?在 WebForm 中,我们可以使用 Server.Execute 来嵌入其它处理程序的输出内容,在 MVC 中,我们使用子 Action 来处理。子 Action 就是用户不能直接访问,只能在其他的 Action 中访问的 Action 方法,它与普通的 Action 一样,有 Action 方法,还有这个 Action 对应的视图。 我们使用特性 ChildActionOnly 来说明这是一个子 Action。在其它视图中,可以使用 RenderAction 来访问子 Action,类似于 RenderPartial 方法,这个方法直接将内容输出到输出流中,由于它们的返回类型都是 void,所以需要使用 @{} 来使用。 通过对 ASP.NET MVC 中的视图生成过程的分析,我们可以更好地理解 ASP.NET MVC 中的视图生成机制,并且提高我们在 ASP.NET MVC 中的开发效率。





























- 粉丝: 1w+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于西门子Smart200+ MCGS+触摸屏的恒温恒湿空调箱PLC控制系统案例解析 PLC编程
- 基于RRT与自重构技术的UAV编队避障与动态队形调整研究 自重构
- 基于Simulink的单轮车辆ABS防抱死控制系统仿真:路面切换与控制算法实现 Simulink 单轮车辆ABS防抱死控制Simulink仿真模型:多模式切换与参数化配置,输出时域性能曲线及基础说明文
- 头歌logisim 存储器 源码
- 数学物理数学物理方法思维导图:基础理论及应用(参考书:顾樵《数学物理方法》)
- 250519gai.zip
- Qt UDP广播发送,发送数据随机生成
- 本地短信取件码快捷读取
- 【游戏开发资源】Pure Nature2 Glacier Mountains v1.0 Unity资源包下载
- 多元统计作业3-软工22级-答案.html
- 便利店信息管理系统 2025免费毕设附带论文 SpringBoot+Vue.js
- 毕业论文管理系统 2025免费毕设附带论文 SpringBoot+Vue.js
- 毕业设计成绩管理系统 2025免费毕设附带论文 SpringBoot+Vue.js
- 分组作业模板.ipynb
- 毕设资源-基于ASP+access的博客网站的设计与实现(附源代码+毕业论文)
- 餐饮管理系统 2025免费毕设附带论文 SpringBoot+Vue.js


