使用ViewData 字典

ASP.NET MVC 中的 ViewData 是什么? 它允许开发人员在控制器中设置数据,并在视图中访问和使用该数据。开发人员可以使用 ViewData 字典对象将数据存储在键值对中,然后在视图中使用相应的键来检索数据。例如,可以将一个模型对象存储在 ViewData 中,并在视图中使用该对象的属性。在上面的示例中,控制器的 Index 方法将一个字符串消息存储在 ViewData 字典中的 “WelcomeMessage” 键下。需要注意的是,ViewData 是一个动态字典对象,因此在视图中访问 ViewData 中的数据时,需要进行类型转换。 阅读详情

Controller 基类公开了一个ViewData 字典属性,用来从Controllers 传递额外的数据给Views 视图。
例如,为了实现将Edit 视图中Country 国家的文本框改为下拉列表框,我们更新Edit() Action 方法,传
入一个SelectList 对象(除了Dinner 对象外),该对象将作为Country 下拉列表框的Model 类。
// GET: /Dinners/Edit/5
[Authorize]
public ActionResult Edit(int id) {
Dinner dinner = dinnerRepository.GetDinner(id);
ViewData["Countries"] = new SelectList(PhoneValidator.AllCountries, dinner.Country);//PhoneValidator.AllCountries,是封装好的一个可枚举的属性,其中包括了国家信息。
return View(dinner);
}
上述SelectList 构造函数接收2 个参数,第一个是国家列表,添加下拉列表,第二个是当前选择的值。
下面更新Edit.aspx 视图模板,使用Html.DropDownList() 辅助方法代码Html.TextBox() 辅助方法:
<%= Html.DropDownList("Country", ViewData["Countries"] as SelectList) %>
上述Html.DropDownList() 辅助方法接收2 个参数,第一个是输出的HTML 表单元素的名称,第二个是通
过ViewData 字典传入的SelectList 模型类,必备那个使用C#的关键字as 转换dictionary 为SelectList。
现在我们在浏览器中访问/Dinners/Edit/2,发现Edit 视图模板中Country 国家文本框已经更新为下拉列表
框了。

 

摘自《一步一步学mvc》

.NET MVC中Controller给View传递数据的方式(ViewData,ViewBag,Model);ASP.NET MVC 传值方法ViewData与ViewBag的区别 一.ASP.NET MVC中Controller给View传递数据的方式(ViewData,ViewBag,Model) ViewData 以ViewData[“name”]=“rupeng”;string s=(string)ViewData[“name”]这样键值对的方式进行数据传送。 ViewBag ViewBag是dynamic类型的参数,是对ViewData一个动态类型封装,用起来更方便... 阅读详情

相关推荐

CMU开源NavRL:深度强化学习如何破解无人机动态避障难题?

卡内基梅隆大学(CMU)开源了NavRL框架,利用深度强化学习解决无人机在复杂环境中的动态避障难题。该框架通过创新的状态表示、多目标奖励函数设计以及独立的安全屏障机制,使无人机能够通过仿真训练自主学会灵活、安全的导航策略,并成功实现从仿真到真实环境的零样本迁移。

hope8的博客 720

MVC中下拉框显示枚举项

原文:MVC中下拉框显示枚举项本篇将通过3种方式,把枚举项上的自定义属性填充到下拉框: 1、通过控制器返回List&lt;SelectListItem&gt;类型给前台视图 2、通过为枚举类型属性打上UIHint属性让模版显示枚举项 3、通过自定义元数据提供器DataAnnotationsModelMetadataProvider让模版显示枚举项   我们经常会把类型为Int...

weixin_33824363的博客 352

Python读取ECMWF grib数据;Anaconda配置eccodes和cfgrib环境及安装过程

python读取grib数据,eccodes,cfgrib安装。

qq_36714629的博客 2244

Asp.Net MVC之ViewData字典与ViewModel模式

当需要从Controller传递不止一个Model对象时,就要用到ViewData字典或ViewModel模式。例如,当我们需要Controller在View呈现Dinner对象和支持的Countries列表的时候,采用如下两种方式来实现。 使用ViewData字典方式:Controller中代码[Authorize] public ActionResult E...

weixin_30780649的博客 158

NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()

Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to()输出(llama) (base) [root@localhost home]# nvidia-smi Unable to determine the device handle for GPU0000:09:00.0: Unknown Error。这是典型的“孤儿进程”,但它还是。(僵尸进程),占用 GPU 资源。如果进程仍然不消失,并且。,这意味着它的父进程是。

m0_61636632的博客 2097

ADC选型实战:从参数指标到精准应用的工程指南

本文深入解析ADC(模数转换器)选型的关键参数与实战技巧,涵盖分辨率、转换误差等核心指标,并提供高精度温度测量、高速数据采集等五大应用场景的选型指南。通过实际案例和代码示例,详细讲解校准方法、功耗优化策略及常见问题排查,帮助工程师实现从参数指标到精准应用的工程实践。

weixin_29166013的博客 326

C#面:C# view bag 和 view data之间的区别是什么?

ViewBag和ViewData都可以用于在控制器和视图之间传递数据。ViewBag使用动态属性,而ViewData使用字典对象。ViewBag没有编译时类型检查,而ViewData需要进行显式的类型转换。ViewBag和ViewData的生命周期都仅限于当前请求。

那个那个鱼的博客 596

智能座舱(七)——智能音频系统

本文剖析车载智能音频系统的核心技术,聚焦音响、功放、麦克风和广播收音机四大组件。音响系统通过多声道布局(如23扬声器阵列)结合动态声场校准算法,实现三维声场覆盖;功放系统采用高效D类技术,支持OTA音效调整和故障自愈;麦克风阵列运用波束成形技术实现精准拾音,并保障隐私安全;广播系统融合数字与网络技术提升音质。核心在于硬件标准化与算法差异化的协同,未来将朝集成化、AI个性化方向发展。

DC20160101的博客 1575

MVC中ViewData与ViewBag的使用与区别

MVC中ViewData与ViewBag的使用与区别 ViewData与ViewBag的使用 public ActionResult Data() { //以键值对的形式进行赋值,以View方法传入一个对象进入视图层 ViewData["name"] = "托尼"; ViewData["age"] = 25; ...

皮卡丘丘丘~~~ 958

【经验&技巧】IBIS AMI模型眼图仿真问题探讨

在ADS的仿真环境中,不论发送和接收的AMI模型是否为true或者false,都可以将通道仿真设置为统计模式,但是,如果有一方的Init函数为false,在统计模式下,处于false状态的模型将不能执行其自带的后处理功能,如下图所示,左边的统计模式和右边的逐比特模式眼图存在明显的差异,原因在于,接收端的init函数为false导致在统计模式中不能对眼图进行DFE处理,换言之,此时统计模式下的眼图就是未经任何处理的“生图”。

一只豌豆象的博客 1767

AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

IOT2017的博客 847

ViewBag和ViewData的区别

ViewData是字典类型,赋值方式以键值对的形式,通过key值读取对应的value, ViewBag是动态类型,使用时直接添加属性赋值点即可 ViewBag.myName ViewBag可以在action页面都可以调用它可以通过它来传递给视图 ViewData比ViewBag快;ViewBag更方便,在使用数据时不需要类型转换 可以传递给前端代码 前端代码代码直接用 Razor 获取viewbag传递过来的数据 Rezor的for循环 foreach Rezor方法: 是一种将基于..

qq_47156673的博客 472

人工智能训练师(三级)操作技能考核·自测卷

为您定制了一份。这份试卷严格拆分了“业务分析”、“智能训练”、“智能系统设计”、“培训与指导”四大模块,所有填空题均来源于上一轮整理的。您可以先用它进行“第二步(抛开答案自己填)”,填完后对照末尾的答案速查进行“第一步(补全并运行)”的校验,最后标记错题进行“第三步(针对性重复练习)”。

suny8088的博客 106

[转]Asp.Net MVC之ViewData字典与ViewModel模式

当需要从Controller传递不止一个Model对象时,就要用到ViewData字典或ViewModel模式。例如,当我们需要Controller在View呈现Dinner对象和支持的Countries列表的时候,采用如下两种方式来实现。 使用ViewData字典方式:Controller中代码[Authorize] public Act...

227

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MVC中ViewBag 和 ViewData 的用法和区别

ViewData ViewData 是一个特殊的字典类的名称,我们可以用标准的字典语法进行修改或赋值,比如: ViewData["Name"] = "Jack"; ViewBag ViewBag 是 asp.net mvc3 中对 ViewData 的一种动态封装,用法更方便。他的赋值方法是: ViewBag.Name = "Jack"; 也就是说 ViewData["Name"] 和 ViewBag.Name 是一样的效果 ViewBag 和 ViewData 的区别...

New_BoKe的博客 421

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

(回顾)MVC3中 ViewBag、ViewData和TempData的使用和区别

在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData。MVC3中保留了ViewData的使用。ViewBag 是动态类型(dynamic),ViewData 是一个字典型的(Dictionary)。 它们的定义如下: public dynamic ViewBag { get; } public ViewDataDictionary ViewData { get; set; } 控制器中代码: public ActionResult Index() { ..

carcarrot的博客 437

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ViewData、ViewBag和TempData比较

一、ViewData、ViewBag和TempData的定义 public dynamic ViewBag { get; } public ViewDataDictionary ViewData { get; set; } public TempDataDictionary TempData { get; set; } 二、使用方法   1、viewdata ...

168

ViewData与ViewBag的区别是什么

一、ViewBag的定义 public dynamic ViewBag {     get {         if (_dynamicViewData == null) {             _dynamicViewData = new DynamicViewDataDictionary(() =&gt; ViewData);         }         return _dynam...

qq_33380252的博客 3972

【MVC】TempData、ViewBag、ViewData、Model

   TempData ViewBag ViewData Model

刘亚男 883

ViewBag和ViewData的用法和区别

ViewBag和ViewData的用法和区别 作者:欧日鑫 撰写时间:2020年8月8日 一、ViewBag的定义 public dynamic ViewBag { get { if (_dynamicViewData == null) { _dynamicViewData = new DynamicViewDataDictionary(() => ViewData); } return _dynamicViewData

weixin_44560792的博客 1124

MVC中viewbag viewdata tempdata

viewdata viewbag 它是key/value字典集合 它是dynamic类型对象 从asp.net mvc1就有了 从asp.netmvc3才有 基于asp.netframework 3.5 基于asp.net framework4.0 viewdata比viewbag快 ...

Marzlam的博客 420

ViewData ViewBag TempData

ViewData和TempData是字典类型,ViewBag是动态类型 ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好。 ViewBag和ViewData仅针对当前Action中有效,生命周期和View相同。TempData: 保存在session中,controller每次执行请求时,会从Session中获取Tempdata(...

weixin_30552811的博客 180

MVC中ViewBag和ViewData的比较

ViewBag和ViewData都是MVC中传输数据的方法,区别如下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才有 基于Asp.net 3.5 framework 基于Asp.net 4.0与.net framework

wangzhezhilu001的专栏 271
上一篇: mvc中的UpdateModel方法
下一篇: 使用ViewModel 模式
mx5721
博客等级 码龄17年 24粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值