Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从动作过滤器查看模型_C#_Asp.net Core_Asp.net Core Mvc_.net Core - Fatal编程技术网

C# 从动作过滤器查看模型

C# 从动作过滤器查看模型,c#,asp.net-core,asp.net-core-mvc,.net-core,C#,Asp.net Core,Asp.net Core Mvc,.net Core,如何通过.Net Core中的过滤器传递模型视图?(我不想重定向) 我的操作过滤器: private class CustomFilter : IActionFilter { private readonly MainDbContext _mainDbContext; public CustomFilter(MainDbContext mainDbContext) { _mainDbContext = mainDbContext; }

如何通过.Net Core中的过滤器传递模型视图?(我不想重定向)

我的操作过滤器:

private class CustomFilter : IActionFilter
{
    private readonly MainDbContext _mainDbContext;

    public CustomFilter(MainDbContext mainDbContext)
    {
        _mainDbContext = mainDbContext;
    }

    public void OnActionExecuting(ActionExecutingContext context)
    {
        var model = _mainDbContext.Groups.ToList();
        context.Result = new ViewResult { ViewName = "Index" };
    }

    public void OnActionExecuted(ActionExecutedContext context)
    {
    }
}

以下方面应起作用:

    public void OnActionExecuting(ActionExecutedContext context)
    {
        var model = _mainDbContext.Groups.ToList();

        var result = context.Result as ViewResult;
        if (result != null)
        {
            context.Result = new ViewResult { ViewName = "Index", ViewData = new ViewDataDictionary(result.ViewData)
            {
                Model = model
            }};
        }
    }

也可以考虑使用Acter过滤器代替. 结果筛选器仅针对成功的结果执行-当一个或多个操作筛选器生成操作结果时。当异常筛选器处理异常时,不会执行结果筛选器


通常,如果我不想重定向,但想操作或过滤一些数据,我会使用控制器。没有重定向-只是一个Ajaxcall@MichaelHancock上面的示例动作过滤器仅用于简单显示问题,但我的真实动作过滤器具有更多逻辑,并用于许多动作和控制器同意,更好地使用结果过滤器。谢谢