MVC——Modle-View-Controller
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制.
- Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
- View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
- Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。
ASP.NET MVC Web 应用程序的文件夹内容:
- 应用程序信息:properties,references(引用)
- 应用程序文件夹:App_Data、Content 、Controllers 、Models 、Scripts、Views
- 配置文件:Global.asax、packages.config、Web.config
各文件夹介绍:
- App_Data 文件夹用于存储应用程序数据;添加SQL数据库到文件夹
- Content 文件夹用于存放静态文件,比如样式表(CSS 文件)、图标和图像;themes文件夹存放jquery央视和图片,site.css文件
- Controllers 文件夹包含负责处理用户输入和响应的控制器类。
- Models 文件夹包含表示应用程序模型的类。模型控制并操作应用程序的数据。
- Views 文件夹用于存储与应用程序的显示相关的 HTML 文件:Account 文件夹包含用于用户账号注册和登录的页面,Home 文件夹用于存储诸如 home 页和 about 页之类的应用程序页面,Shared 文件夹用于存储控制器间分享的视图(母版页和布局页)。
- Scripts 文件夹存储应用程序的 JavaScript 文件:maybe include 标准的 MVC、Ajax 和 jQuery
MVC样式和布局:
- 文件 _Layout.cshtml 表示应用程序中每个页面的布局。它位于 Views 文件夹中的 Shared 文件夹
- Html帮助器:@Url.Content() - URL 内容将在此处插入;@Html.ActionLink() - HTML 链接将在此处插入
- Razor语法:@ViewBag.Title - 页面标题将在此处插入;@RenderBody() - 页面内容将在此处呈现
- site.css添加样式
- Shared 文件夹(位于 Views 文件夹内)中的 _ViewStart 文件包含如下内容:@{Layout = "~/Views/Shared/_Layout.cshtml";};这段代码被自动添加到由应用程序显示的所有视图。
MVC控制器:
- MVC 将 URL 映射到方法。这些方法在类中被称为"控制器"。控制器负责处理进入的请求,处理输入,保存数据,并把响应发送回客户端。
- 在我们应用程序中的控制器文件HomeController.cs,定义了两个控件 Index 和 About。eg:
-
namespace MvcDemo.Controllers { public class HomeController : Controller { public ActionResult Index() {return View();} public ActionResult About() {return View();} } }
Views 文件夹中的文件 Index.cshtml 和 About.cshtml 定义了控制器中的 ActionResult 视图 Index() 和 About()。
MVC视图:
- Views 文件夹中文件扩展名可能是 html、asp、aspx、cshtml 和 vbhtml。Views 文件夹中包含每个控制器对应的一个文件夹。Account 文件夹、 Home 文件夹、Shared 文件夹。
- ASP.NET文件类型:
纯 HTML | .htm or .html |
经典 ASP | .asp |
经典 ASP.NET | .aspx |
ASP.NET Razor C# | .cshtml |
ASP.NET Razor VB | .vbhtml |
- 文件 Index.cshtml 表示应用程序的 Home 页面。它是应用程序的默认文件(首页文件)。eg:
-
@{ViewBag.Title = "Home Page";} <h1>Welcome to W3CSchool.cc</h1> <p>Put Home Page content here</p>
文件 About.cshtml 表示应用程序的 About 页面。eg:
-
@{ViewBag.Title = "About Us";} <h1>About Us</h1> <p>Put About Us content here</p>