0

asp.net web api では、ログの目的でアクション フィルター [ValidateModel] を使用できます。バインド エラーが発生した場合に備えて、アクション メソッド パラメーター (車のオブジェクトなど) の要求から json 文字列をログに記録すると便利です。小数が予想されるときに文字列を送信する。そのような場合、car オブジェクトは null です。

問題 - リクエスト オブジェクトからポストされた json オブジェクトにアクセスできない

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

また

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

アクション フィルター属性 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 に答える