zoukankan      html  css  js  c++  java
  • MVC之ViewData.Model

      在MVC中前台Razor视图呈现数据的方式不止一种。举个简单的Demo,我们要把用户信息呈现给人民。

    一.ViewData.Model的使用,先简单写一下Razor

    @model   User------用户信息模型

    姓名<span>@Model.name</span>

    年龄<span>@Model.age</span>

    为了在页面呈现用户姓名和年龄资料,我这样写Action

    public ActionResult User()

    {

      User user=new User();//实例用户信息模型,前提是定义好

      user.name="张三";

      user.age="18";

      return View(user);//这里返回模型到Razor中

    }

    上面红色部分改为ViewData.Model=user;return View();也可以实现我们的目的。

    这就是ViewData.Model的用法,它会把Model当做强类型数据传到Razor视图中。

    二.再写写ViewDataViewBag,我想给用户加两条信息,分别是性别和爱好。

    在Action User()里添加代码

    ViewData["sex"]="男";

    ViewBag.love="apple";

    在视图中添加代码

    性别<span>@ViewData["sex"]</span>

    爱好<span>@ViewBag.love</span>

    ViewData与ViewBag的区别

      ViewData ViewBag
    性能
    类型 Key/Value的集合 dynamic类型对像
    类型转换 在前台页面时有些数据需转换(ex:分页集合) 不需转换

    三.还有一个TempData.它作用于Action()与Action()间的数据传递。ViewData也可以,不过只能在相同名字下的Action()传递数据。

    我再定义一个名为Info()的Action,这时要想把上面User()中的用户任一信息传递到Info()中,就可以使用TempData了。

    在User()中添加代码TempData["name"]=user.name;之后,在Info()中便可接收。

    Public ActionResult Info()

    {

      var name=TempData["name"];

    }

    同样,ViewData,BiewBag和TempData之间也可以接受数据。

  • 相关阅读:
    计算机考研复试真题 数字求和
    计算机考研复试真题 简单计算器
    计算机考研复试真题 N阶楼梯上楼问题
    P1082 [NOIP2012 提高组] 同余方程
    进制转换
    浮点数加法
    N的阶乘
    1055 The World's Richest (25 分)
    1028 List Sorting (25 分)
    1062 Talent and Virtue (25 分)
  • 原文地址:https://www.cnblogs.com/paulhe/p/3576454.html
Copyright © 2011-2022 走看看