首页 文章

WebApi 2.1模型验证在本地工作,但在服务器上运行时不显示缺少的字段

提问于
浏览
1

我们正在使用WebApi v2.1并通过WebApiConfig类中应用的过滤器验证ModelState .

我们在服务器(Win Server 2008R2)上运行时,错误消息中未列出指定为必需的字段,但是当我们在本地运行时(在IISExpress上)它们可以正常工作 .

请求在本地和服务器上被正确拒绝,但服务器响应不显示缺少的字段 .

例如:给定缺少所需缩写和issuerName字段的本地请求,响应显示为预期:

{“message”:“请求无效 . ”,“modelState”:{“value”:[“在JSON中找不到必需属性'缩写' . 路径'',第18行,第2位 . ”,“必需属性在JSON中找不到'issuerName' . 路径'',第18行,第2位 . “ ]}

当相同的请求发送到服务器时,响应显示:

{“message”:“请求无效 . ”,“modelState”:{“value”:[“发生错误 . ”,“发生错误” . ]}}

我们的过滤器如下:

public class ValidateModelStateAttribute:ActionFilterAttribute {public override void OnActionExecuting(HttpActionContext actionContext){if(!actionContext.ModelState.IsValid)}}

我们的数据模型类使用DataContract属性进行修饰,所需的字段的属性如下:

[DataMember(IsRequired=true)]        
    public string IssuerName

1 回答

相关问题