0

在 asp.net web api 中,我们可以使用操作过滤器 [ValidateModel] 进行日志记录:如果由于绑定错误而导致绑定错误,则从对操作方法参数(例如汽车对象)的请求中记录 json 字符串会很有用在需要小数时发送字符串。在这些情况下,汽车对象为空。

问题 - 无法从请求对象访问发布的 json 对象

//var car = actionContext.Request.Content.ReadAsStringAsync().Result;

或者

//var car2 = actionContext.ControllerContext.Request.Content.ReadAsStringAsync().Result;

如何在 Action Filter 属性 ValidateModel 中获取 Car 参数的 json 字符串?说方法:

//[ValidateModel]
  //public HttpResponseMessage Post_Car(Car car) {
//}
4

1 回答 1

0

据我了解您的问题,您希望记录请求以防出现绑定错误。绑定错误有点例外,因此您可以处理控制器或操作的异常。为此,您需要使用ExceptionFilterAttribute. 下面的例子:

public class ExceptionHandlingAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        string content = actionExecutedContext.Request.Content.ReadAsStringAsync().Result;

        ///LOGGING ACTIONS

        base.OnException(actionExecutedContext);
    }
}
于 2013-09-07T07:15:53.320 回答