MVC模式三个组件:
Model:主要存储或者是处理数据的组件,实现业务逻辑层对实体类相应的增删改查操作。
View:将Model数据展示给用户。
Controller:处理用户交互,从model获取数据,并将数据传给指定的View。
实现步骤:
1、新建MVC项目;
2、新建Controller;
规则:放到controllers文件夹中,并且命名 方式以Controller结尾;
每个Controller都对应View中的一个文件夹,文 件夹的名称跟Controller名相同;
Controller中的方法名都对应一个View视图;
3、新建View;
规则:视图必须放到Views目录下;
不同控制器的视图用文件夹进行分割,每 个控制器都对应一个视图目录;
一般视图名字跟控制器的Action相对应;
示例:
1、在文件夹“Controllers”下创建“控制器”:HomeController
1a:在控制器里创建ActionResult方法Index:
public ActionResult Index()
{
List<Dog> list = new List<Dog>() {
new Dog(){ID=1,Name="aNmae"},
new Dog(){ID=2,Name="bNmae"},
new Dog(){ID=3,Name="cNmae"},
new Dog(){ID=4,Name="dNmae"}
};
System.Text.StringBuilder sb = new System.Text.StringBuilder();
list.ForEach(d =>
{
sb.AppendLine("<DIV>" + d.ToString() + "</DIV>");
});
ViewBag.HtmlStr = sb.ToString();
return View();
}
1b:点击方法Index,添加视图,视图名称为“Index”,视图引擎为Razor,生成Index.cshtml
@{Layout = null;}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<div>
@Html.Raw(ViewBag.HtmlStr)
</div>
</body>
</html>
备注:
上面使用ViewBag传递数据;ViewBag是Controller的属性,是继承 ControllerBase而来。
============================================================
MVC所有的请求都在控制器的Action,即ActionResult的方法名。
Url的格式是根据路由规则来定的。
{Controller}/{Action}/{id},则请求的url地址应该是: http://localhost/Home/Index
即MVC请求的是一个逻辑地址,而不是一个物理路径。