ASP.NET MVC 初探
程序员文章站
2022-04-02 17:45:54
...
ASP.NET MVC 是一全新的web框架。是对复杂软件的横向切分。
将ASP.NET MVCASP.NET拆分,即"ASP.NET+MVC",前者代表支撑该应用框架的平台,后者表示该框架的的设计思想。
MVC是一种软件设计模式,即:Model(模型)、View(视图)、和Controller(控制器)。主要设计的目标是将用户接口和逻辑层相分离。
ASP.NET MVC框架三大组成部分:
- Model 实现应用程序数据逻辑的应用程序组件(业由务逻辑和数据访问组成与三层架构Model层的实体类不同)
- View 显示应用程序用户界面的(UI)的组件
-
Controller 处理用户交互、使用模型并选择视图来显示界面的组件,是连接Model和View的桥梁。
如何操作:
1.创建ASP.NET MVC 4 Web 应用程序
打开HomeController.cs
按下快捷键F5项目运行效果如下:
2.创建控制器和视图
如下图所示右键点击添加控制器
右键点击index,然后点击添加视图
Views将会自动生成视图
3
3.控制器向视图传递数据
控制器向视图传递小型数据可以使用一下三种数据:
1)ViewDada
字典类型,存放的是键/值对数据
举例:
HomeController.cs:
public ActionResult Index()
{
//使用ViewDada 从控制器传递到视图
ViewDada["Message"]="使用ViewDada传递文本数据!";
return View();
}
Index.cshtml:
<hgroupclass="title">
<h2>@viewDada["Message"]</h2>
</hgroup>
2)ViewBag
存放的不是键/值对 数据,是dynamic动态类型数据
举例:
public ActionResult About()
{
//使用ViewBag 从控制器传递到视图
ViewBag.Message="使用ViewDada传递文本数据!";
return View();
}
About.cshtml:
<hgroupclass="title">
<h2>@ViewBag.Message</h2>
</hgroup>
3)TempData
默认保存在session中,跨操作方法传递数据
举例:
HomeController.cs:
public ActionResult Index()
{
//使用TempData从控制器传递到视图
TempData["Message"]="使用TempData";
return View();
}
public ActionResult About()
{
//在Adout方法中获取 TempData
if("使用TempData"==TempData["Message"] as string )
{
TempData["Message"] ="使用TempData保存数据";
}
ViewBag.Message="使用ViewDada传递文本数据!";
return View();
}
About.cshtml:
<hgroupclass="title">
<h2>@TempData["Message"] </h2>
</hgroup>
4.相比三层架构,MVC有何特点
- View和Model较为独立,Controller是连接二者的桥梁,三者没有明显的向下依赖关系,利于团队开发。
- 结构更清晰,耦合性更低,每部分都可以独立测试。
- MVC的每个组成部分可被设计多层结构,尤其是Model部分。