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"]

  • 相关阅读:
    认识hasLayout——IE浏览器css bug的一大罪恶根源 转
    web网站p教程 转
    可遇不可求的Question之SQLServer的INSERT ON DUPLICATE KEY UPDATE语法篇
    可遇不可求的Question之Protoc.exe无法编译proto文件篇
    python各个版本的下载地址
    可遇不可求的Question之WCF发布无法运行篇
    [转]理解JSON:3分钟课程
    可遇不可求的Question之Silverlight发布IIS设置篇
    可遇不可求的Question之C#中的匿名事件导致内存泄露的解决篇
    可遇不可求的Question之mysql连接数暴增的解决方法篇
  • 原文地址:https://www.cnblogs.com/JohnTang/p/11042161.html
Copyright © 2011-2022 走看看