如何检查自定义libproc
中的操作是返回View()
还是Redirect()
?我需要检查这一点,因为ActionFilter
用额外的东西填充ActionFilter
。但如果它是重定向,则不需要它。
ViewBag
[MyActionFilter]
public IActionResult Index()
{
if (ModelState.IsValid())
return View();
else
return Redirect("foo");
}
答案 0 :(得分:2)
我明白了。
使用ResultFilter
代替我,可以访问返回的类型。我还必须从after动作更改为before动作,因为通常不允许在after动作中更改结果。
public class MyActionFilter : IResultFilter
{
public void OnResultExecuting(ResultExecutingContext context)
{
if (context.Result is ViewResult)
context.Controller.ViewBag.Foo = "Bar";
else
// do other stuff
}
public void OnResultExecuted(ResultExecutedContext context)
{
}
}
答案 1 :(得分:0)
ActionExecutedContext有一个ActionResult。您可以在OnActionExecuted中检查ActionResult是ViewResult还是RedirectResult / RedirectToRouteResult。