MVC基础知识整理(一)

475 阅读2分钟

MVC是一种轻量级的替代方案。轻量级的,可测试性高的框架,拥有ASP.NET所有已知的特性,比如母版页、安全性和认证。

一、MVC是对Web Form的一种轻量级的替代方案

  • 俩者的本质是请求Url不同,MVC是将请求交给控制器处理,而Web Form是将请求交给请求页的后台文件(.cs文件的Page_load)处理。
  • MVC更方便,效率更高

二、MVC的请求流机制

  • 首先获取控制器;
  • 接着依赖行为控制器创建Model对象,Model通过转换调用数据访问层;
  • 最后数据填充Model后,传递到View显示层,实现显示目的。

三、命名规范

  • Controllers: 控制器创建的控制器必须以Controller结尾,控制器里有若干行为(方法)控制相应的页面,相应的操作;
  • View: 控制器HomeController创建后,View层会自动创建对应Home文件夹,来存放相对行为的视图;
  • Model:视图模型,以ViewModel结尾,例如:HomeViewModel,也叫业务模型,与数据访问层的数据模型经行交互,返回用户所需要的数据

四、如何获取页面传过来的参数值

  • ?号传参
    location.href ="Index?id="+id
    public ActionResuLt Index(string id)
    
    {
        string id = Request["id"].toString();//get post
        string id = Request.QueryString["id"];//get
        string id = Request.Files["id"].ToString();
    }
  • 路由传参
    location.href ="Index/id"
    public ActionResuLt Index(string id)
    
    {
        string id =RoutoData.Values["id"]//get post
    }

五、返回视图

    public ActionResult Index()
    {
        return View();//返回默认的视图,即和方法名一样的View视图
        return View("Show")//返回在同一视图文件夹下的Show视图
        return VIew("`/Views/Shop/ShopList")//返回指定路径的视图
    }

六、Razor语法

  • 对于Razor语法,特别的简单,就是使用@符号即可。在@后面编写C#代码即可

七、从后台设定值,并在页面显示

    public ActionResult Index()//后台
    {
        ViewBag.name = "张三"
        list <Users> lis = new list<Users>();
        lis.Add(new Users{id=1,name="小花"});
        lis.Add(new Users{id=1,name="小草"});
        ViewBag.list = lis;
        //另一种像视图传递Model
        retrun View(lis);
    }
    HTML//前台
    @ViewBag.name
    
    @foreach(var item in @ViewBag.list)
    {
        @item.id+@item.name;
    }
     //另一种像视图传递Model
    @model IEnumerable<UI.Models.UsersModel>
    @foreach (var item in Model)
     {
         @item.id+@item.pwd
     }