文件 _Layout.cshtml 表示应用程序中每个页面的布局。它位于 Views 文件夹中的 Shared 文件夹。
例如下面有一个_Layout.cshtml的例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script>
</head>
<body>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Movies", "Index", "Movies")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
<section id="main">
@RenderBody()
<p>Copyright W3schools 2012. All Rights Reserved.</p>
</section>
</body>
</html>
HTML 帮助器
在上面的代码中,HTML 帮助器用于修改 HTML 输出:
@Url.Content() - URL 内容在此处插入。
@Html.ActionLink() - HTML 链接在此处插入。
Razor 语法
在上面的代码中,由红色标记的代码是使用 Razor 标记的 C#。
@ViewBag.Title - 在此处插入页面标题。
@RenderBody() - 此处呈现页面内容。
控制器
在默认的情况下,Visual Web Developer 已创建以下文件:HomeController.cs(用于首页和关于页面)和 AccountController.cs (用于登录页面),这些文件都在Controllers文件夹下面。Controllers 文件夹包含负责处理用户输入和响应的控制器类。MVC 要求所有控制器的名称必须以 "Controller" 结尾。
MVC 将 URL 映射到方法。这些方法在类中被称为“控制器”。控制器负责处理进入的请求、处理输入、保存数据、并把响应发送回客户端。
Home 控制器
我们应用程序中的控制器文件 HomeController.cs,定义了两个控件 Index 和 About。具体如下面的代码。然后在Views 文件夹中Home文件夹下面的文件 Index.cshtml 和 About.cshtml 定义了控制器中的 ActionResult 视图 Index() 和 About()。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
}
}
Views 文件夹
Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件)。根据语言的不同,这些文件的扩展名可能是 html、asp、aspx、cshtml 以及 vbhtml。
Views 文件夹包含每个控制器对应的一个文件夹。例如上面的例子,Controllers中包含有AccountControlller和HomeController,那么在Views中,就对应文件夹Account和Home。在Controller.cs中的每一个Action都对应View中的一个文件。例如:上面的HomeController中有Index和About两个方法,那么就对对应Views-->Home-->About.cshtml/Index.cshtml两个文件。