zoukankan      html  css  js  c++  java
  • [MVC学习日记]2014/12/01 初步认识MVC模型。

    2014/12/01
    1、初步认识MVC模型。
    MVC模式是一种表现模式。它将web应用程序分成三个部分,模型(Model)、视图(View)、控制器(Controller)。
    Model:是实现业务逻辑层对实体类响应数据库操作。
    View:是用户接口层组件,仅仅只是用来展示数据的。
    Controller:处理用户交互,从model中获取数据并将数据传给指定的视图展示。

    例子:访问home控制器下面的action,由对应home控制器的视图展示数据。
    控制器:HomeController: Controller

    public ActionResult Index()
    {
      ViewData["Msg"] = "欢迎使用 ASP.NET MVC!";
      return View(); //默认Home控制器视图Index界面展示数据。
    }

    视图:<%:ViewData["Msg"]%>

    视图Shared文件夹,公用视图,可以存放母版页、用户控件、错误页面等。

    控制器自动搜索视图约定:
    1、查找控制器同名文件夹下的视图aspx。
    2、查找控制器同名文件夹下的视图ascx。
    3、查找Shared文件夹下的视图aspx。
    4、查找Shared文件夹下的视图ascx。

    return View("Index");  //指定Index视图展示数据。
    return Content("输出内容。");  //打印
    return RedirectToAction("Index"); //跳转执行action-Index()方法。

    关于路由初步认识:

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
      "Default", //路由名称
      "{controller}/{action}/{id}", //带有参数的 URL
      new {controller="Home",action="Index",id=UrlParameter.Optional} //参数默认值
    );

    1、请求控制器action方法,即可以接收Get,也可以接收Post提交的数据。

    *MVC强大的内置Htmlhelper类。

    <%: Html.TextBox("txtName","这是文本框。") %>
    //自动生成html标签为:
    <input id="txtName" name="txtName" type="text" value="这是文本框。">
    <%: Html.ActionLink("这是A标签。","Index","Home",new {Id="a1",style="color:red;",@class="classA"}) %>
    //自动生成html标签为:
    <a id="a1" class="classA" href="/Home/Index" style="color:red;">这是A标签。</a>
    男:<%: Html.RadioButton("txtGender",1,true) %><br/>
    女:<%: Html.RadioButton("txtGender",2,false) %><br/>
    保密:<%: Html.RadioButton("txtGender",1,false) %><br/>
    ViewData["city"] = new List<selectListItem>()
    {
      new SelectListItem(){Selected=false,Text="北京",Value="1"},
      new SelectListItem(){Selected=false,Text="天津",Value="2"},
      new SelectListItem(){Selected=false,Text="南京",Value="3"},
      new SelectListItem(){Selected=false,Text="成都",Value="4"},
    };
    
    <%: Html.DropDownList("city") %>
    //注释:后台将数据存储到ViewData中,前台通过key直接获取集合数据。


    *强类型视图:
    表单提交,ID和name值只要model类字段一样,提交的时候自动封装到实体类中。

    //视图中使用表单标签2种方式
    <% using(Html.BeginForm()) {%>

    <%}%> //推荐

    <% Html.BeginForm();%>
    //……
    <% Html.EndForm();%>


    学习总结:
    mvc与asp.net最大区别就是业务逻辑层(.cs)与视图层(.aspx)弱耦合关系。
    视图层不再是一一对应逻辑层,用户访问页面也不再是直接访问指定的视图,
    而是通过访问指定的控制器下面的action方法,通过控制器将最终数据交给视图展示。
    备注:用户—>控制器—>模型(BLL,DAL)—>数据库(DB)—>模型—>控制器—>视图。

    使用MVC不再使用任何服务器端控件,也没有viewstate。

  • 相关阅读:
    wpf Behavior
    wpf Trigger
    语法糖
    Lambda 表达式
    wpf 3D动画
    IEnumerable接口学习
    Delegates, Events, and Anonymous Methods 委托、事件与匿名方法
    wpf 平滑效果随记
    软件工程第一篇博客
    记考研高数第一课
  • 原文地址:https://www.cnblogs.com/han1982/p/4137504.html
Copyright © 2011-2022 走看看