代码如下:
[HttpPost]
public ResultEntityVM Register([FromBody,Required] RegisterParam createAssessorParam)
{
if (ModelState.IsValid == false)
{
return null;
}
//other code
ResultEntityVM vm = new ResultEntityVM();
return vm;
}
当参数createAssessorParam
为null
时,ModelState.IsValid
的值为true
。为什么呢?
如果我想自动判断参数是否为null
,我该怎么办?
不要我只能写代码:
if(RegisterParam != null)
{
//other
}
答案 0 :(得分:2)
我遇到了同样的问题并通过实现自定义操作过滤器属性来评估它,该属性评估了操作方法参数的所有验证属性。
我在this blog post中描述了使用ASP.NET Core 1.0的方法,但同样的方法也适用于ASP.NET 4.
答案 1 :(得分:1)
这是针对@ aspV.net网站调整的@MarkVincze答案
describe('Test api Share of voice', () => {
let apiLink = app.get("apiTestLink") + "/api/<link>";
it('Status Code = 200', function(done) {
this.timeout(constant.MAX_WAIT);
http.get(apiLink, function(res) {
assert.equal(res.statusCode, 200);
done();
});
});
//some tests
});
答案 2 :(得分:-1)
在WebAPI中,action参数永远不会为null。它始终由框架实例化。因此,如果要确保它们存在,您宁愿在视图模型的属性上使用Required
属性。