zoukankan      html  css  js  c++  java
  • MVC5.0(一)

    概念

    广义MVC(Model--View-Controller)

    V是界面  M是数据和逻辑  C是控制,把MV链接起来

    程序设计模式,一种设计理念,可以有效的分离界面和业务

    狭义MVC

    web开发框架

    V--Views   用户看到的视图内容

    C---Controllers  决定用户使用哪个视图,还能调用逻辑计算

    方法Action

    M--Models  数据传递模型,普通的实体

      

    MVC里的返回

       通常情况我们可以看到在Controllers里最后都是return View,那么MVC就只是返回试图吗?答案是否定的,它可以返回html--string---json--xml--file--图片。

    注意:如果返回的是JosnResult或者ActionResult 时需指定JsonRequestBehavior.AllowGet

    因为默认是不支持外部Get请求的,需要修改为支持Get请求。

     

    数据传值的多种方式

    ViewBag

    dynamic传值,可以随便属性访问,运行时检测

    举例说明:

    后台赋值:

      ViewBag.TestProp = "Tenk";

    前台取值:

      @ViewBag.TestProp

    ViewData

    字典传值,里面是object,需要类型转换

    举例说明:

    后台赋值:

     ViewData["TestProp"] = "cx";

    前台取值:

       @(((CurrentUser)ViewData["CurrentUserViewData"]).Name)

     需要在前台页面引用命名空间

    注意:如果同时使用ViewBagViewData二者是会覆盖的,以最后使用的为准。

    Model

    适合复杂数据的传递,强类型

    举例说明:

    后台赋值:

        private List<CurrentUser> _UserList = new List<CurrentUser>()

            {

              new CurrentUser()

                  {

                     Id=1,

                     Name="Z",

                     Account="Administrator",

                     Email="177@qq.com",

                     LoginTime=DateTime.Now,

                     Password="123456"

                }

          }

    ViewData["CurrentUserViewData"] = this._UserList[0];

    前台取值:

      @model CurrentUser//需要引用传递模型的命名空间

    @{

        ViewBag.Title = "Index";

        CurrentUser userData = (CurrentUser)ViewData["CurrentUserViewData"];

    }

    通过 @userData.属性,可以获取到传递过来的模型里所有的属性

    TempData

    临时数据,可以跨action后台传递,存在session里面,用一次就清理掉

    Return时我们不仅可以return View,还可以做页面的流转。

    举例说明:

    后台赋值:

    TempData["TestProp"] = "Spider";//独立存储

       if (id == 1 || id == 2 || id == 3)//根据条件判断,流转不同的页面

          return View(this._UserList[2]);

      else if (id < 10)

          return View("~/Views/First/Index1.cshtml");

      else

          return base.RedirectToAction("TempDataShow");

    前台取值:

       @TempData["TestProp"]

  • 相关阅读:
    什么是ORM
    ORM优缺点
    Azure 中快速搭建 FTPS 服务
    连接到 Azure 上的 SQL Server 虚拟机(经典部署)
    在 Azure 虚拟机中配置 Always On 可用性组(经典)
    SQL Server 2014 虚拟机的自动备份 (Resource Manager)
    Azure 虚拟机上的 SQL Server 常见问题
    排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
    上传通用化 VHD 并使用它在 Azure 中创建新 VM
    排查在 Azure 中新建 Windows VM 时遇到的部署问题
  • 原文地址:https://www.cnblogs.com/JohnTang/p/11042161.html
Copyright © 2011-2022 走看看