ASP.NET MVC ViewData、ViewBag 和 TempData2025年3月17日 | 阅读 3 分钟 ASP.NET MVC 提供了三个变量,用于存储值并从控制器传递到视图。 ViewData 和 ViewBag 类似,但 TempData 具有额外的功能。 我们将通过示例讨论每一个。 ASP.NET MVC ViewData它是一个对象字典,源自 ViewDataDictionary 类。 我们可以使用字符串作为键来访问值。 它是类型安全的,需要进行类型转换才能获得数据类型。 它可以避免错误,并在运行时检查空引用。 它仅在当前请求期间可访问。 示例 我们正在创建一个控制器,并将视图返回到浏览器。 此控制器将 Courses ViewData 传递到视图。 控制器视图 (View)// Index.cshtml 输出 它向浏览器生成以下输出。 ![]() ASP.NET MVC ViewBag它是一个动态属性,类似于 ViewData。 它是在 .NET Framework 4.0 版本中引入的。 它用于将数据从控制器发送到视图页面。 ViewBag 可以动态地获取和设置值,这就是它被称为动态属性的原因。 它不需要类型转换,并动态转换类型。 示例 在此示例中,我们正在实现 ViewBag 属性。 控制器和一个 Index 文件如下所示。 控制器视图 (View)输出 Index 文件将以下输出生成到浏览器。 ![]() ASP.NET MVC TempData它表示一组数据,这些数据仅从一个请求持续到下一个请求。 它源自 TempDataDictionary,我们可以使用它的对象来传递数据,就像我们在 ViewData 中所做的那样。 TempData 的值仅从一个请求持续到下一个请求。 保留用于标记键以持久保存数据,以便它可以保留到下一个请求。 我们还可以使用 TempData 将数据从一个操作传递到另一个操作。 让我们看一个例子。 示例 控制器// TempDataController.cs 视图 (View)// Index.cshtml 输出 此 index 文件将以下输出生成到浏览器。 ![]() 下一主题ASP.Net Razor |
我们请求您订阅我们的新闻通讯以获取最新更新。