本文对ASP.NET MVC的模型、视图和控制器做一次高级概述,换句话说,就是解释ASP.NET MVC中的"M""V""C"。阅读完本文后,你应该理解ASP.NET MVC中的各个部分是如何协同工作的,同时也应该知道ASP.NET MVC应用程序和ASP应用程序及ASP.NET Web窗体应用程序之间的不同之处了。
HomeController.About()方法。
控制器中所有公共方法都是以控制器行为方式暴露的,这意味着任何在浏览器地址栏敲入对应的URL都可以调用这些方法,这一点需要注意。
理解视图
ViewsHomeIndex.aspx
HomeController.About()行为返回位于下列路径的视图:
ViewsHomeAbout.aspx
通常,如果你想为控制器行为返回一个视图,你必须在视图文件夹下创建一个与控制器名字相同的子文件夹,在这个子文件夹中,还必须创建一个与控制器行为同名的.aspx文件。
清单3中显示了About视图文件的内容。
清单3 About.aspx
<%@ Page Language="VB" MasterPageFile="~/Views/Shared/
Site.Master"
AutoEventWireup="false" CodeBehind="About.aspx.vb" Inherits="MvcA
pplication1.About" %>
<asp:Content ID="aboutContent" ContentPlaceHolderID="MainC
ontent" runat="server">
<h2>About Us</h2>
<p>
TODO: Put <em>about</em> content here.
</p>
</asp:Content>
如果你忽略清单3中的第一行,视图剩下的部分呢内容都是标准的HTML,你可以在里面添加任何需要的HTML内容。
视图和ASP页面或ASP.NET Web窗体非常类似,视图可以包括HTML内容和脚本,你可以用你熟悉的.NET编程语言(如c#或VB .NET)编写脚本,使用脚本来显示动态内容,如数据库数据。
理解模型
我们已经讨论了控制器和视图,我们要讨论的最后一个主题是模型,什么是MVC模型呢?
MVC模型包括应用程序的所有逻辑,这些逻辑在视图和控制器都是没有的,模型应该包括应用程序所有的业务逻辑和数据库访问逻辑,例如,如果你使用LINQ到SQL访问你的数据库,那么你就应该在模型(Models)文件夹下创建LINQ到SQL的类(dbml文件)。
小结
原文:Understanding Models, Views, and Controllers 作者:Stephen Walther