C# MVC 向页面传值方式

简介: C# MVC 向页面传值方式

本文列举以下三种,主要传递一些简单的数据,集合类型数据最好用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方法之间共享数据。

相关文章
|
6月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
342 5
|
6月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
98 0
|
11月前
|
JSON 运维 前端开发
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
|
存储 前端开发 C#
【C#编程最佳实践 八】MVC流程实践
【C#编程最佳实践 八】MVC流程实践
110 0
【C#编程最佳实践 八】MVC流程实践
|
前端开发 Java C#
【从Java到C#系列 五】C#里的MVC生命周期
【从Java到C#系列 五】C#里的MVC生命周期
90 0
【从Java到C#系列 五】C#里的MVC生命周期
|
开发框架 数据可视化 前端开发
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
575 0
【C#视频】方法重载、函数重载、传值
【C#视频】方法重载、函数重载、传值
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
42 0
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
|
前端开发 C#
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小