Eg:
public class RefreshTokenModel { /// <summary> /// access_token /// </summary> [Required(ErrorMessage = "access_token can't be empty.")] public String access_token { get; set; } /// <summary> /// refresh_token /// </summary> [Required(ErrorMessage = "refresh_token can't be empty.")] public String refresh_token { get; set; } }接口的模型验证写法
public async Task<IHttpActionResult> UserAccessToken([FromBody]RefreshTokenModel token) { if(ModeState.isValid){ //FK } }上面写法没错,但是使用的时候会有一个坑: 当Client发起请求的时候,根本没有POST 任何一个参数的时候,ModelState.isValid 为True,token对象为空….
所以这里并不能完全信任Modelstate.isValid,使用token对象,要这样…
public async Task<IHttpActionResult> UserAccessToken([FromBody]RefreshTokenModel token) { if(ModeState.isValid&&token!=null){ //FK } }