C# 从动作过滤器查看模型
如何通过.Net Core中的过滤器传递模型视图?(我不想重定向) 我的操作过滤器: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; }
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上面的示例动作过滤器仅用于简单显示问题,但我的真实动作过滤器具有更多逻辑,并用于许多动作和控制器同意,更好地使用结果过滤器。谢谢