MVC模型验证:属性值无require,页面仍然验证问题

为了更清晰的说明这个问题,我使用了VS2013自动生成的MVC示例来演示,运行示例项目,点击注册页面,如图:

接下来给上面的注册增加一个“年龄条件”,找到RegisterModel,添加一个”Age”属性,但是,不加”[require]”,如图:

运行项目,回到注册页面,用户名,密码,确认密码都填,年龄项不填,点击注册,如图:

我们发现它提示 “年龄字段是必须的”,但是我并没有在 Age属性上加require属性,它怎么还会验证呢? 起初我还以为页面缓存原因,清空缓存,问题仍然存在。

于是Google,了解到这是MVC自动为我们处理的,对于值类型如:decimal,DateTime,int等,不管我们有没有加[require]属性,页面都会验证。解决方法是把该属性设成nullable类型,如上面Age属性修改为:

public int? Age { get; set; }

MVC模型验证:属性值无require,页面仍然验证问题,布布扣,bubuko.com

时间: 2024-10-16 11:25:27

MVC模型验证:属性值无require,页面仍然验证问题的相关文章

ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现

在电商产品模块中必经的一个环节是:当选择某一个产品类别,动态生成该类别下的所有属性和属性项,这些属性项有些是以DropDownList的形式存在,有些是以CheckBoxList的形式存在.接着,把CheckBoxList的选中项组合生成产品SKU项. 本系列将在ASP.NET MVC中实现以上功能.但本篇,先在控制台实现属性值的笛卡尔乘积. 关于属性的类: public class Prop { public int Id { get; set; } public string Name {

MVC验证05-自定义验证规则、验证2个属性值不等

原文:MVC验证05-自定义验证规则.验证2个属性值不等 本文体验2个属性值不等.即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等.相关文章包括: MVC验证01-基础.远程验证   MVC验证02-自定义验证规则.邮件验证   MVC验证03-自定义验证规则.禁止输入某些值   MVC验证04-自定义验证规则.日期范围验证 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因

ASP.NET MVC验证 - 自定义验证规则、验证2个属性值不等【待验证】

提示:保存后才提示错误信息 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因为该重载包含了验证上下文ValidationContext,从中可以获取属性及属性值. using System.ComponentModel.DataAnnotations; using System.Globalization; using System.Web.Mvc; namespace MvcValid

MVC 模型验证

ASP.NET MVC框架提供了数据验证的API,称为"模型数据注解"或"模型元数据",使我们可以使用声明语法在模型中指定验证的规则,常见的验证API如下: 验证API 数据验证API 示例 说明 Compare [Compare("MyOtherProperty")] 两个属性值必须相同 Range [Range(10,20)] 属性值必须在指定的数据范围之内 RegularExpression [RegularExpression("

当ASP.NET MVC模型验证遇上CKEditor

项目需要,使用到了CKEditor编辑器.这是个很不错的富文本编辑器,但是当它绑定的字段需要进行模型验证的时候,却会出现验证失效的问题.因此本文旨在记录这个问题和给出解决办法.以下以ValidationAttribute和jQuery Validate2中验证方式为例.测试项目包含3个页面:Index.cshtml(包含2个部分视图).Add.cshtml(添加页).Companies(列表页,仅为展示数据):一个模型(Company).项目功能截图如下: -------------------

Asp.net MVC中表单验证属性的使用

用于检查是否有输入值 :RequiredFieldValidator(必须字段验证)按设定比较两个输入 :CompareValidator(比较验证) 输入是否在指定范围 :RangeValidator(范围验证) 正则表达式验证控件 :RegularExpressionValidator(正则表达式验证) 自定义验证控件 :CustomValidator(自定义验证) 总结验证结果 :ValidationSummary(验证总结) 1.RequiredFieldValidator(必填字段验证

ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现

在"ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现"中,在控制台应用程序中实现了属性值的笛卡尔乘积.本篇在界面中实现.需要实现的大致如下: 在界面中勾选CheckBoxList中属性值选项: 把勾选的属性值进行笛卡尔乘积,每行需要填写价格: 我们暂且不考虑这些CheckBoxList是如何显示出来的(在后续有关商品模块的文章中会实现),还需考虑的方面包括: 1.从CheckBoxList中获取到什么再往控制器传? 对于每行的CheckBoxList来说

ASP.NET MVC模型部分验证

在很多情况下,我们为了代码的复用可能会存在ViewModel共用的情形.比方说,web应用中常常会遇到的一个需求就是用户找回密码的功能.用户首先要验证通过验证邮箱(通常是用户名)来获取验证码,然后再进行密码重置.那么此时假设需要4个字段:Email.Password.ConfirmPassword.VerifiCode.那么就需要2个单独的页面中队这一个model进行分步验证了.google了一下,发现了一些有价值的解决方案.为了说明问题,写了一个小的Demo如下: ViewModel: pub

如何检测页面是否有重复的id属性值

如何检测页面是否有重复的id属性值: 根据W3C标准规定,在同一个文档内id属性值是唯一的,也就是说不能够有重复的id属性值,如果当页面比较庞大的话,如何去检测是否有重复的id属性值那将是一个复杂的工作,下面将提供一段代码实例可以解决此问题. 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" conten