首页 > 编程语言 >C# MVC 向页面传值方式

C# MVC 向页面传值方式

时间:2023-01-16 18:37:19浏览次数:41  
标签:ViewData nameTest C# TempData ViewBag MVC User var 传值

本文列举以下三种,主要传递一些简单的数据,集合类型数据最好用Model对象或者JSON串

  • ViewBag
  • ViewData
  • TempData

ViewBag:

 public ActionResult Index()
 {
      User user = Session["User"] as User;
      if (user != null)
      {
          ViewBag.User = user;
      }
         return View();
  }

javascript

var uid = "@ViewBag.User.Unit.Id";
var userId = "@ViewBag.User.Id";
var userName = "@ViewBag.User.Name";
var userPwd = "@ViewBag.User.Password";

页面直接引入:

<span>@ViewBag.User.Name</span>

ViewData:

public ActionResult Index()
 {
      ViewData["nameTest"] = "Hella World";
      return View();
  }

javascript

var name = "@ViewData["nameTest"]";

页面直接引入

<span>@ViewData["nameTest"]</span>

TempData

public ActionResult Index()
{
     TempData["nameTest"] = "Hello World";
     return View();
 }

javascript

var name = "@TempData["nameTest"]";

页面直接引入

<span>@TempData["nameTest"]</span>

ViewData是字典型的(Dictionary),ViewBag不再是字典的键值对结构,而是dynamic(动态)型,会在程序运行的时候动态解析。ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别是在使用时它会自动根据数据类型转换,而object型则需要我们自己去强行转换。

ViewBag其实就是ViewData,只是多了一层Dynamic控制,可以说它是另一种访问ViewData的方式。理论上ViewBag要比ViewData慢一点点,但是几乎可以忽略,所以使用何种方式完全取决于个人的爱好。

TempData的使用同ViewData和ViewBag一样,TempData也可以用来向视图传递数据,只是ViewData和ViewBag的生命周期和View相同,它们只对当前的View有用。TempData则可以在不同的Action中进行传递,类似Webform里的Session。有一点需要注意,TempData的值在取了一次后会自动删除。TempData用来在一次请求中同时执行多个Action方法之间共享数据。

标签:ViewData,nameTest,C#,TempData,ViewBag,MVC,User,var,传值
From: https://blog.51cto.com/u_14452299/6010717

相关文章

  • Docker网络模式
    Docker网络作用:容器间的互联和通信以及端口映射,容器IP变动时候可以通过服务名直接网络通信而不受到影响常用基本命令dockernewwork--helpdockernetworkls#查看网络......
  • Docker-compose(容器编排)
    Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。......
  • Windows cmd窗口改变字体或背景颜色
    Windows默认的cmd简直不能直视,做开发的同学避免不了经常要在本地乃至服务器运行命令,一个好看的命令窗口是否能给你枯燥的工作带来一丝神清气爽的感觉,接下来给大家介绍如何......
  • Codeforces Round #844 (Div.1 + Div.2) CF 1782 A~F 题解
    点我看题A.ParallelProjection我们其实是要在这个矩形的边界上找一个点(x,y),使得(a,b)到(x,y)的曼哈顿距离和(f,g)到(x,y)的曼哈顿距离之和最小,求出最小值之后加h就是......
  • mysql主从复制(基于docker容器化)
    拉取镜像不多说,直接从run开始,使用版本mysql5.71.新建主服务器容器实例3307dockerrun-p3307:3306--namemysql-master\-v/mydata/mysql-master/log:/var/log/m......
  • 微服务Docker部署jar包
    Dockerfile内容#基础镜像使用javaFROMjava:8#作者MAINTAINERzzyy#VOLUME指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的......
  • Docker容器数据卷
    Docker容器数据卷是什么?一句话:有点类似我们Redis里面的rdb和aof文件,就是将docker容器内的数据保存进宿主机的磁盘中。Docker容器数据卷能干什么?将运用与运行的环境......
  • Go - struct
    typeMemberstruct{namestring`json:"name"`}func(m*Member)setName(namestring){m.name=name}func(mMember)getName(){fmt.Printf("%p\n",......
  • C语言足球游戏软件
    C语言足球游戏软件有一款足球游戏软件FIFA有一款足球游戏软件FIFA,游戏者可以选择任意一只球队,并在比赛中的某一时刻控制本队任意一名球员....现要求,请你设计该游戏底层......
  • 深浅copy
    现有数据data={"name":"alex","age":18,"scores":{"语文":130,"数学":60,"英语":98,}}d2=datadata["age"]=20......