我如何在exceptionFilter Asp.NetCore中获取模型对象?

问题描述 投票:5回答:1

我正在使用ASP.NET Core 2.0中的WEB应用程序,其中有一个继承自ExceptionFilterAttribute的自定义ExceptionAttribute过滤器。

如何访问在POST调用中传递给操作的Model对象。

提到的方法被传递给ExceptionContext,但是我找不到一种简单可靠的方法来从中获取Model对象并传递给ViewResult。

我拥有的过滤器,如下所示:

public class ApiCallExceptionAttribute: ExceptionFilterAttribute
{
    private readonly IModelMetadataProvider _modelMetadataProvider;

    public ApiCallExceptionAttribute(
        IModelMetadataProvider modelMetadataProvider)
    {
        _modelMetadataProvider = modelMetadataProvider;
    }

    public override void OnException(ExceptionContext context)
    {
        //how can i accesss model object here and pass to ViewResult
        result.ViewData = new ViewDataDictionary(_modelMetadataProvider,context.ModelState);

        context.Result = result;
    }
}

并且控制器如下所示:

[HttpPost]
[ServiceFilter(typeof(ApiCallExceptionAttribute))]
public async Task<IActionResult> Activation(ActivationViewModel model)
{
            //throw exception in controller content
}
c# asp.net-core exception-handling
1个回答
0
投票

找不到任何简便的方法。

© www.soinside.com 2019 - 2024. All rights reserved.