MVC基础入门(二)
来源:互联网 发布:simulink转换成c语言 编辑:程序博客网 时间:2024/06/08 10:07
Mvc在学习《Headfirst》的时候,就接触过了。对于这个庞大的模式。非常的感兴趣。Mvc就是设计模式的升华。
在没有接触过Mvc的时候,一直都是在使用的三层架构,使用的UBD三层来做项目。对于这个新接触的名词,还是很陌生的。所以需要来逐渐的来学习,如何使用Mvc。
首先,MVC是在web开发上面提出的。所以要对比一下,web方式与mvc方式的区别。
MVC(模型Model-视图View-控制器Controller)是一种软件架构模式。 当我们看到Model的时候,很容易就想到 在三层里面的实体层。首先需要知道的是,同样是Model,代表的是不同的意思。
在MVC中,Model存放的是业务逻辑和数据访问,所做的工作相当于之前使用的B层和D层。
View代替了三层中的U层。也就是负责展示。
三层中:U->B->D 是这么个顺序。
MVC中:V M 单独存在,使用C来对 V和M进行整合。
这个控制器Controller,负责把用户的请求转发给M,经过M处理之后,找到对应的V,然后把界面显示出来。
Webfrom页面的访问模式:
MVC的访问方式:
所以MVC中,Controller中一定有相应的View对应。
而一个控制器中可以有多个方法,但每个方法都对应一个视图。
保证控制器下的方法,与View下面的视图相对应。
下面用一个例子,用mvc实现一下。
首先,是mvc例子的资源列表。
1、创建Controller:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using csdnblog.Models;namespace csdnblog.Controllers{ public class HomeController : Controller { //创建一个数据集合(伪数据) List<Models.Dog> list = null; #region 0.1 初始化数据集合 +oid InitData() /// <summary> /// 初始化数据集合 /// </summary> public List<Models.Dog> InitData() { list = new List<Models.Dog>() { new Dog(){ID=1,Name="Dog1:xiaohei~"}, new Dog(){ID=2,Name="Dog2:xiaobai~"}, new Dog(){ID=3,Name="Dog3:xiaocai~"}, new Dog(){ID=4,Name="Dog4:xiaoyang~"}, }; return list; } #endregion public ActionResult Index() { System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000); //2.1处理当前业务(比如读取数据库,判断等) //2.2创建一个数据集合(伪数据),获取数据 List<Models.Dog> list = InitData(); //2.1.2遍历集合,生成html代码,存入stringBuilder list.ForEach(d => { sbHtml.AppendLine("<div>" + d.ToString() + "</div>"); }); //2.2使用viewBag传输数据给 同名 index.cshtml 视图 //viewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值 ViewBag.HtmlStr = sbHtml.ToString(); //2.3加载同名视图index.cshtml return View(); } public ActionResult Index2() { return View(); } }}2、建立处理逻辑
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace csdnblog.Models{ public class Dog { public int ID { get; set; } public string Name { get; set; } public override string ToString() { return "ID=" + this.ID + ",Name=" + this.Name; } }}3、生成试图:
@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width" /> <title>Index</title></head><body> <div> @Html.Raw(ViewBag.HtmlStr) </div></body></html>
以上就是Mvc的最简单的例子。主要是熟悉 各个层所提供的职责。
总结:mvc架构模式,将视图层和业务层分离。这样就允许更改试图层代码而不用重新编译模型和控制器。同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。期待在项目中练习一下。
- MVC基础入门(二)
- MVC入门介绍(二)
- Spring MVC入门(二)
- MVC入门学习笔记(二)
- MVC一个入门的例子(二)
- spring mvc(1):基础入门
- spring mvc(1):基础入门
- MVC基础入门
- Spring MVC基础入门
- [Spring MVC] 入门基础
- Spring MVC入门基础
- ASP.NET MVC入门(二)---MVC数据传递
- JavaScript入门基础(二)
- Log4j基础入门(二)
- SQL入门基础(二)
- Winform基础入门(二)
- Sql基础入门(二)
- Python入门(二,基础)
- Ubuntu学习笔记(一)
- Makefile经典教程(掌握这些足够)
- 算法 Merge Sorted Array
- python第三方库系列之七--logging库
- SVM基础篇
- MVC基础入门(二)
- Linux的shell中echo改变输出显示样式
- IOS socket 通信机制的实现
- 算法 Search a 2D Matrix
- jquery clone()函数讲解
- java工程积累——如何处理Tomcat内存溢出
- MD5.SHA.BASE64算法加解密
- C#调用存储过程详解
- 堆 和 栈的 区别(经典)(转)