首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我什么时候应该避免使用强类型的viewdata?

在云计算领域,强类型的ViewData可能会导致一些问题,例如数据类型不匹配、数据转换错误等。因此,在以下情况下,应该避免使用强类型的ViewData:

  1. 数据类型不确定:如果数据类型不确定,那么强类型的ViewData可能会导致数据类型不匹配的问题。在这种情况下,应该使用弱类型的ViewData,以避免数据类型不匹配的问题。
  2. 数据转换错误:如果数据转换错误,那么强类型的ViewData可能会导致数据转换错误的问题。在这种情况下,应该使用弱类型的ViewData,以避免数据转换错误的问题。
  3. 数据类型不稳定:如果数据类型不稳定,那么强类型的ViewData可能会导致数据类型不稳定的问题。在这种情况下,应该使用弱类型的ViewData,以避免数据类型不稳定的问题。

总之,在需要处理不确定或不稳定的数据类型时,应该避免使用强类型的ViewData,以避免数据类型不匹配、数据转换错误或数据类型不稳定的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

应该什么时候使用 Apache Druid

许多公司都已经将 Druid 应用于多种不同应用场景。请访问 使用 Apache Druid 公司 页面来了解都有哪些公司使用了 Druid。...如果您使用场景符合下面的一些特性,那么Druid 将会是一个非常不错选择: 数据插入频率非常高,但是更新频率非常低。...大部分查询为聚合查询(aggregation)和报表查询(reporting queries),例如我们常使用 “group by” 查询。同时还有一些检索和扫描查询。...如果你使用场景是下面的一些情况的话,Druid 不是一个较好选择: 针对一个已经存在记录,使用主键(primary key)进行低延迟更新操作。...你系统类似的是一个离线报表系统,查询延迟不是系统设计重要考虑。 使用场景中需要对表(Fact Table)进行连接查询,并且针对这个查询你可以介绍比较高延迟来等待查询完成。

62230

几种应该避免使用箭头函数情况

几种应该避免使用箭头函数情况 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 避免在定义对象方法时使用 箭头函数虽然因语法简练受人追捧。...,这个 bug 有点 因此不要在对象方法中使用箭头函数 避免在 prototype 上使用 因为没有 this 导致 this 指向错误,所以在定义 prototype 方法上一定记得不要使用箭头函数...避免在需要 arguments 上使用 因为箭头函数没有 arguments 因此如果外层是另外一个函数,那么 arguments 是这个外层函数 当然可以使用 rest 操作符获取对应参数 避免在动态上下文中回调函数里使用...caller 时候使用 因 caller 早已不再是推荐标准,应该在任何时候都避免使用 caller 这里就不多说了 ?️...其他情况下尤其是 map reduce forEach 等并没有什么复杂逻辑时候使用箭头函数能够增加阅读体验,想必是极好 that's all 在看么 点击按钮推荐给朋友们~

62120

使用Docker容器应该避免10个事情

容器 准则 : “容器是临时” ? 这个特性“本身”促使用户改变他们关于使用和管理容器习惯;将会向您解释在容器中不应该做这些事,以确保最大地发挥容器作用。...在开发阶段这样是对,此时你需要不断地部署与调试;但对于质量保证与生产中一个连续部署管道,你应用本该成为镜像一部分。记住:容器应该保持不变。...5) 不要为运行中容器创建镜像 – 换言之,不要使用“docker commit”命令来创建镜像。这种创建镜像方法是不可重现也不能版本化,应该彻底避免。...在生产中部署容器时应避免使用最新。...你镜像应该使用USER指令来指令容器一个非root用户来运行。”

66270

使用 C# 9 records作为类型ID - 初次使用

类型ID 实体通常是整数,GUID或者string类型,因为数据库直接支持这些类型,但是,如果实体ID类型是一样,比如都是整数ID,这有可能会出现ID值传错问题,看下边示例。...幸运是,可以定义类型id来解决这个问题,这个想法很简单,为每个实体ID声明一个特定类型,现在需要这样写: // 使用类型ID代替整数ID public void AddProductToOrder...Record类型 Record 类型是具有内置不变性和值语义引用类型,它和上面我们写类型是一样(手动写成员实现Equals,GetHashCode等等),在代码中使用也非常简洁, 如果我们ProductId...主要区别在于:我们手动实现是struct,即值类型,但是记录是引用类型,这意味着它们可以为null,这可能不是主要问题,尤其是在使用可为空引用类型情况下,但是要知道这一点。...现在为模型中每个实体编写一个类型id是不是很简单,使用Record 非常方便,当然,还有其他问题需要考虑,例如JSON序列化,与Entity Framework Core一起使用等,但这是另一篇文章故事

52620

到底应该使用哪个 CRI 替换 kubernetes 集群 Docker?

测试环境 这里测试环境是一个 1.19.4 版本 kubernetes 集群,使用 ansible 进行创建(https://gitlab.com/incubateur-pe)。...创建集群 这里直接使用 molecule 创建一个集群,并配置了它在每个 worker 节点上使用不同 cri,对应 ansible 源码位于:https://gitlab.com/incubateur-pe...containerd 在所有指标上表现都比较好,应该是最均衡一个选择了。另外一方面,docker 并没有得到很好测试结果,但是无论负载情况如何,它表现基本上都是一致。...在我看来,docker 仍然是让整个容器化向前发展一个伟大工具。但是好像我还没有回答最初问题,那就是:应该k8s集群使用什么CRI?...从个人角度考虑的话,个人选择是:containerd,他速度快,配置方便,相当可靠和安全,不过 cri-o 已经支持 cgroupsv2 了,所以如果使用 fedora 或者 centos/8

2.6K20

博主被迫营业简单聊聊zblog应该使用哪些插件,避免更多

,今天被迫营业,修复了宁静致远主题一个八阿哥,然后顺便把之前欠下债不上,因为之前就说过,有机会的话聊聊zblog应该开启哪些插件,好,进入正题。...但是令我真正诧异是,居然有人单独开启了,图片延迟加载插件,还有些居然特意安装了奥森图标的插件,这个就不能理解了,这个是主题模板必带(开发主题)功能之一,还有人单独开启了什么缩略图插件,还有很多就不一一赘述...今天正好说下主题一般都自带哪些功能,相关插件都可以停用了,如果不懂,直接参考本站使用插件即可。 主题基本都带有自定义SEO接口。...主题自带广告接口,无法使用广告插件,除非有特别需求网友,主题用过朋友都了解,广告接口都是PC和移动端独立分离,所以就不需要额外开启广告插件了。...当然以上言论仅代表个人,也仅仅能适用正在使用本站开发主题网友。哦对了,另外像管理员自用插件,例如KOD文件管理、主题编辑插件等,需要用到时候开启就行,不需要一直开

80720

面试官:集合使用应该注意哪些问题?应该注意该注意问题!

写在开头 面试官:“小伙子,java集合学过吗?” :“肯定学过呀!”,这时候自信满满,手撕集合八股文嘛,早已背滚瓜烂熟了呀。...面试官:“那你来讲讲集合使用时,应该注意哪些问题吧” :“额,这,想想哈。”,什么!这面试官不按套路出牌,上来就问注意事项,打我一个措手不及啊。...:“嗯 ~,觉得应该注意该注意问题!” 面试官:“下一位!”...,也就是不可重复,所以集合去重本领我们也要掌握,在《阿里巴巴 Java 开发手册》中这样说道: 可以利用 Set 元素唯一特性,可以快速对一个集合进行去重操作,避免使用 List contains...集合转数组 对于集合转为数组场景,《阿里巴巴 Java 开发手册》也给了要求,如下: 使用集合转数组方法,必须使用集合 toArray(T[] array),传入类型完全一致、长度为 0 空数组

4900

请你讲讲数组(Array)和列表(ArrayList)区别?什么时候应该使用Array而不是ArrayList?

剑指-->Offer 01 Array和ArrayList不同点: ①Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。...②Array大小是固定,ArrayList大小是动态变化。 ③ArrayList提供了更多方法和特性,比如:addAll(),removeAll(),iterator()等等。...④对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小基本数据类型时候,这种方式相对比较慢。...02 写在后面 本文章将以“指导面试,智取Offer”为宗旨,为广大Java开发求职者扫清面试道路上障碍,成为面试官眼中精英,朋友圈里大神。...在面试场上“胸有成竹”,坦然面对每个面试官“拷问”,做到进可攻“项目经理、项目总监”等高级职务,视之为翘首可及;退可守“Java工程师、Java测试工程师”等职务,视之为探囊取物。

1.6K30

控制器到视图传值方式

从控制器到视图传值方式 (1)Viewdata C:Viewdata["key"]="viewdata"//控制器中赋值 V:Viewdata["key"]//视图中取值 (2)Viewbag...查询出对象 V:通过强类型页面 形式为:@model 从控制器中传来具体类型(单个对象或者集合) viewdata与viewbag区别: (1)对于普通类型 传值方式一样 (2)对于类型...(2)tempdata 可以跨方法取值不会丢失,TempData应该可以在一个Action中设置,多个页面读取。但是,实际上TempData中元素被访问一次以后就会被删除。...类型传值:通过对象传值(Model):必须要有一个对象实体类 C中:返回一个对象(变量),return View(对象变量p);//p可能是单个对象也有可能是一个集合PL V中:需要一个接受从C中传来...  使用model就可以访问Student类     是对于传过来是一集合PL:   @model  List

1.2K20

七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

但是在实际使用过程中,它们并不是最佳选择,接下来我们来看看使用它们缺点: 性能问题;ViewData值都是对象类型使用之前必须强制转换为合适类型。会添加额外性能负担。...实验5——理解类型View ViewData和ViewBag引起所有问题根源都在于数据类型。参数值数据类型是被封装在ViewData,称为对象。...1: @using WebApplication1.Models 2: @model Employee 是否必须设置类型视图或不使用ViewData和ViewBag?...设置类型视图是最佳解决方案。 是否能将View设置为多个Model使用类型? 不可以,实际项目中在一个View中想要显示多个Model时以点结束。该问题解决方法将在下一节讨论。...执行 关于实验7 是否可以制定类型View列表? 是的 为什么要新建EmployeeListViewModel单独类而不直接使用类型View列表?1.

2.2K90

使用 C# 9 records作为类型ID - JSON序列化

在本系列上一篇文章中,我们注意到类型ID实体,序列化为 JSON 时候报错了,就像这样: { "id": { "value": 1 }, "name":..."Apple", "unitPrice": 0.8 } 不过想了一下,这样意外也是在意料之中类型ID是record类型,而不是原始类型,因此将其序列化为一个对象是有意义,但这显然不是我们想要...为了将类型id序列化为其值而不是对象,我们需要编写一个通用 JsonConverter: public class StronglyTypedIdJsonConverter<TStronglyTypedId...不过,还有有一个问题:我们只为添加了一个对于ProductId转换器,但我不想为每种类型类型ID添加另一个转换器!...,检查它是否实际上是类型id,然后为该类型创建特定转换器实例,我们添加了一些缓存,避免每次都进行反射工作。

1.4K10

使用 C# 9 records作为类型ID - 路由和查询参数

上一篇文章,介绍了使用 C# 9 record类型作为类型id,非常简洁 public record ProductId(int Value); 但是在类型id真正可用之前,还有一些问题需要解决...ProductId,由于它不是int,是我们定义类型ID,并且没有关联类型转换器。...现在还有一点是,上面写了一个ProductId转换器,但是如果我们类型足够多,那也有很多工作量,所以需要一个公共通用转换器。...通用类型id转换器 首先,让我们创建一个Helper •检查类型是否为类型ID,并获取值类型•获取值得类型,创建并缓存一个委托 public static class StronglyTypedIdHelper...; } } 到这里,我们可以直接删除之前 ProductIdConvert, 现在有一个通用可以使用,现在.NET Core 路由匹配已经没有问题了,接下来文章,我会介绍如何处理在JSON

1.9K20

MVC5学习系列--Razor视图(一)

前言 嗷~小弟又出现了~咳咳..嚎过头了, 先说一说为什么写这个吧,~首先肯定是自己需要学(废话 - -,)//,之前也写过MVC4项目,嗯..但是仅限于使用并没有很深入每个模块去了解, 这段时间拜读了汤姆大叔...视图用法 上面大概展示了视图作用..下面我们就来用用傲娇它 视图常用一些数据字典. ViewBag,ViewData,ViewDataDictionary,任意类型.....嗯,这里我们暂时不提类型,后面讲模型时候在来将, 下面我们看个实例,代码如下: //我们在Test控制器中,用三种方式来给视图Data赋值.....ViewDataDictionary类型属性.....返回部分视图 return PartialView(); } 小结 这一篇详细了解了在MVC3之后出现Razor视图一些基本使用方式,了解了一下他内部情况

1.3K80

ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

视图(Razor)ViewBag使用示例 ASP.NET Core NVC 视图(Razor)类型传值(ViewModel)页示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows 10...弱类型参数说明 ViewData 派生自 ViewDataDictionary,因此它有可用字典属性,如 ContainsKey、Add、Remove 和 Clear。...字典中键是字符串,因此允许有空格。 示例:ViewData[“ken”] 任何非 string 类型均须在视图中进行强制转换才能使用 ViewData。...类型参数说明 视图强类型通常称为ViewModel,我们可以在return View();时指定视图参数/对象。...并在视图文件(.cshtml)中通过 @model 语法指定对应类型,这样我们可以在视图文件(.cshtml)中使用Model关键字来使用传输到视图类型实例。

2.2K50

辅助方法、模型、视图数据

="11"/> 如果在 ViewData 中没有匹配“Album.Price” 值,那么辅助方法将尝试查找与第一个点之前那部分名称(Album)匹配值。...换言之,就是找一个Album类型对象。然后,辅助方法估测名称中剩余部分(Price),并找到相应值。 渲染得到input元素id特性值使用下划线代替了点,是因为在id特性中包含点是非法。...eg3: TextBox辅助方法依靠类型视图数据也能很好工作。...标记 如果想避免自动查找数据,可以向表单提供一个显示值,显示提供值得方法是必需。...Name",album.GenreId); return View(album); } 视图中代码: @Html.TextBox("Title",Model.Title) 辅助方法在查找类型模型对象之前

57020

ASP.NET MVC5高级编程——(2)MVC模式视图

dynamic简洁语法,又能获得类型和编译时检查好处(比如正确输入属性和方法名称)。...类型视图允许设置视图模型类型。因此可以从控制器向视图传递一个在两端都是类型模型对象,从而获得智能感知、编译器检查等好处。...从控制器向视图传递信息,然后介绍了传递类型模型。...一般来说,大部分代码使用ViewBag(传递少量简单类型数据),而不是ViewData,这两种语法并不存在技术上差异,仅仅是因为ViewBag相对于字典语法而言看上去好看。...这些模版利用Visual Studio模版系统来生成基于选择模型类型视图。 引用脚本库:这个选项用来指示要创建视图是否应该包含指向JavaScript库(如果对视图有意义的话)引用。

2.8K10

【asp.net core 系列】3 视图以及视图与控制器

1.1 在视图中引用命名空间 我们知道,在cshtml文件中,虽然极大减少了服务器代码,但是有时候无法避免使用一些C#代码。...所以,_Layout也会按照这个顺序查找,为了避免不必要混淆,我们只在Shared目录下写了_Layout.cshtml。...应该是类似的页面。 IActionResult 是一个接口,表示是一个Action处理结果,在这里可以理解为固定写法。...ViewData,它声明如下: public ViewDataDictionary ViewData { get; set; } 可以看到这是一个字典型属性,所以给它赋值是这样使用: public...ViewBag访问与ViewData类似,只不过ViewBag是动态对象,可以认为它类型并没有发生改变,继续按照之前类型进行使用: @ViewBag.Name 对于ViewModel

2.5K10
领券