热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

属性是[必需]和可空的是什么意思?

如何解决《属性是[必需]和可空的是什么意思?》经验,为你挑选了2个好方法。

对于一个属性[Required]和可空的属性意味着什么?(下面的例子)似乎如果它[Required]不可能null(没有价值),如果它能够是null它不可能是[Required].

[Required]
public DateTime? OrderDate { get; set; }

小智.. 27

使属性可为空并且使用该[Required]属性标记的原因是为了防止欠发布攻击.它还允许您在视图中显示初始空值,而不是属性的默认值.这通常使用视图模型中的值类型属性来完成.

发布不足的攻击是指恶意用户修改请求以省略请求中属性的值.如果属性是DateTime(不可为空),则会DefaultModelBinder将值初始化为default(01/01/0001),并且不会ModelState生成错误.结果,即使它不是您所期望的,也可以保存该值.

如果属性是DateTime?(可空)[Required],然后如果恶意用户确实省略了请求中的属性,那么ModelState将生成错误,因为请求中有一个值,并且视图将被返回,因此无效数据将不会得救

另请参阅Brad Wilson 在ASP.NET MVC中的文章输入验证与模型验证以及标题为"欠发布"问题的部分.



1> 小智..:

使属性可为空并且使用该[Required]属性标记的原因是为了防止欠发布攻击.它还允许您在视图中显示初始空值,而不是属性的默认值.这通常使用视图模型中的值类型属性来完成.

发布不足的攻击是指恶意用户修改请求以省略请求中属性的值.如果属性是DateTime(不可为空),则会DefaultModelBinder将值初始化为default(01/01/0001),并且不会ModelState生成错误.结果,即使它不是您所期望的,也可以保存该值.

如果属性是DateTime?(可空)[Required],然后如果恶意用户确实省略了请求中的属性,那么ModelState将生成错误,因为请求中有一个值,并且视图将被返回,因此无效数据将不会得救

另请参阅Brad Wilson 在ASP.NET MVC中的文章输入验证与模型验证以及标题为"欠发布"问题的部分.



2> Max Toro..:

它可以为空,因此表单不会显示初始值0001-01-01T00:00:00,因为它没有任何意义.

需要强制用户输入内容.


推荐阅读
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 今天写一篇blog,已经多长时间没有更了,两个月了吧,没办法,现在银行开发,不能连外网,天天用虚拟机,真烦今天随手写点东西,主要是这两天对于springboot启动的分析,有所领悟 ... [详细]
  • MVC中的自定义控件
    怎么样创建自定义控 ... [详细]
author-avatar
月光下大手拉S小手
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有