在asp.net web api中,我们可以使用动作过滤器[ValidateModel]进行日志记录: 如果由于在预期的小数时发送字符串而存在绑定错误,则记录来自action方法参数(例如car对象)的请求的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) {
//}
答案 0 :(得分:0)
据我了解您的问题,您希望在出现绑定错误时记录请求。绑定错误有些异常,因此您可以处理控制器或操作的异常。为此,您需要使用ExceptionFilterAttribute
。以下示例:
public class ExceptionHandlingAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
string content = actionExecutedContext.Request.Content.ReadAsStringAsync().Result;
///LOGGING ACTIONS
base.OnException(actionExecutedContext);
}
}