ModelState.IsValid always returning true while mocking a request
ASB.net MVC 视图验证里有一个IValidatableObject接口.这里面有一个验证方法.通常我们表单提交的时候dto就是用一个实现IValidatableObject这个接口的实体.
但是在测试的时候,当我们测试控制器的时候会发现控制器里调用ModelState.IsValid的时候,永远都是返回true.
这就需要扯到ASB.NET MVC的生命周期了.在这个生命周期里面.模型绑定先于方法调用运行,所以我们在控制器里面调用ModelState.IsValid的时候模型绑定已经完成(这不废话么)
而我们单元测试是直接实例化控制器,然后调用方法的,不走生命周期,所以不会验证视图,IsValid是一个可读的自动属性
public bool IsValid
{
get
{
return Enumerable.All<ModelState>((IEnumerable<ModelState>) this.Values, (Func<ModelState, bool>) (modelState => modelState.Errors.Count == 0));
}
}
我们都没有模型绑定,erros.count 当然是0啦,那么ModelState.也就一直都是true了.
http://stackoverflow.com/questions/29715295/asp-net-mvc-httpcontext-current-is-null-while-mocking-a-request/29738778#
ModelState.IsValid always returning true while mocking a request的更多相关文章
- ModelState.IsValid
model内的设置如下所示: /// <summary> /// 取得或设置邮编 /// </summary> [RegularExpression(@"(^[1-9 ...
- 为什么mvc里面的ModelState.IsValid一只都是true
http://zhidao.baidu.com/link?url=H69JQBpF8vbJEOUUc1RCjRZZ05gSGn6PiPL740aGgR3qIfFTT__pt4KgEg7O47lReYR ...
- asp.net core 简化模型验证 modelState.IsValid不用每一个写
第一种:直接在执行action之前验证模型 实现 IActionFilter public class ModelStateFilter : IActionFilter { public void O ...
- ModelState.IsValid总为false原因
总结在开发中遇到的一个问题 ModelState.IsValid 一直是false 且在局部变量中,没有发现有问题啊,Model非常正常有木有,可是为什么 ModelState.IsValid 总是f ...
- ASP.NET MVC3 ModelState.IsValid为false的问题
模型验证通常在submit后调用Action之前进行验证,eg: public class ZhengXing { [Key] public int ZhengXin ...
- ModelState.IsValid一直为false的原因
一,问题:ModelState.IsValid一直为false 二,解决方法和原因, 由于这个方法中传过来的RegisterForm模型的字段,某一个为空值,则会造成这个验证验证为false,去注释掉 ...
- 受够了if (ModelState.IsValid)?ActionFitlter也是一路的坑啊!
这篇博客真是干货,干得估计还有点“磕牙”,所以还提供视频和代码.但基础稍弱的同学,怕还是得自行补充一些基础知识——就一篇文章,确实没办法面面俱到. 视频和代码下载:Demo - 百度云盘 · 一起帮 ...
- modelstate.isvalid false
http://stackoverflow.com/questions/1791570/modelstate-isvalid-false-why 第一个 About "can it be th ...
- Mvc ModelState.isValid为false时,检查时那个字段不符合规则的代码
List<string> sb = new List<string>(); //获取所有错误的Key List<string> Keys = ModelState. ...
随机推荐
- LinkedBlockingQueue源码解析(3)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 4.3.public E take() throws InterruptedException 原理: 将队 ...
- Mac 切换到行首和行末的方法
苹果笔记本没有home键和end键 但是使用 command + 方向键左键可以回到行首, command + 方向键右键可以去到行末
- Android 美学设计基础 <3>
本期接着对Android的美学设计的分享. 1.3 Light and shadows 光学与阴影 1.3.1 Light 在素材设计的环境中,我们会用虚拟的光来照亮UI界面.主灯光会产生尖锐,有方向 ...
- “借刀杀人”之CSRF拿下盗图狗后台
最近我一个做贸易的朋友找到我,他发现自己拍摄的图片又被某个同行盗用了,而且是全站的图片基本都被盗用. 之前对方是引用他的图片链接,后面我给他做了防盗链解决了,现在对方是先下载图片,然后自己上传到服务器 ...
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册》下载
https://bbs.aliyun.com/read/306592.html?page=e 2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准. 这 ...
- cmd下查看应用端口情况
在win10开始窗口右侧的空白处点击CMD,在上方弹出窗口中选择命令提示符,双击进入 在弹出命令界面中,输入netstat -na命令后回车,如下图所示,可以看到所有目前打开的端口 如果要查看打开端口 ...
- 4. Neural Network
1. 神经网络 首先引入一些便于稍后讨论的新标记: $L$:代表神经网络层数$S_l$:代表第$l$层处理单元的个数$K$:代表多分类中类别种数 2. 前向传播(forward propagation ...
- 移动端 实现ul横向滚动条
ul { display: flex; width: 100%; height: 3.333333rem; background: #fff; padding: 0.373333rem 0.32rem ...
- java语言学习指南
1 java基础 1.1 java语言编程入门 1.2 java语言概述 1.3 java基本语法一 1.4 java基本语法二 1.5 java基本语法三
- SqlServer内存占用查看
查看每个数据库对内存的占用 SELECT ISNULL(DB_NAME(DATABASE_ID),'RESOURCEDB') AS DATABASENAME, ,)) AS 'SIZE(MB)' FR ...