如下图,Name属性是必须填写
下图是控制器,直接返回实体是否通过验证:
下图是测试方法,测试返回的结果是否为真:
在测试方法中,我直接没有给Name属性赋值。。
跟到控制器里看到Name是null,
可是控制器里的ModelState.IsValid始终是true
我不是设置了必填的验证属性了吗?为什么没有填写它也为true呢?
谢谢解答!
参考:ASP.NET MVC Controller post method unit test: ModelState.IsValid alsways true
谢谢dudu大神,我是想写WebAPI,给所有平台调用,然后在控制器里用ModelState.IsValid来验证实体的属性是否符合要求。。。
但是没有像MVC那样给View绑定Model,这样的话,是不是没法用ModelState.IsValid来验证?
@hexllo: 问题不在WebAPI,而是在你的单元测试代码中没有触发MVC进行验证。如果你实际运行WebAPI,就能验证。你要在单元测试中调用控制器的TryValidateModel触发验证。
参考:Unit testing ModelState