本文介绍了我该如何重定向用户从一个ASP.MVC 3动作过滤器的另一个控制器动作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在构建定制ASP.MVC 3动作过滤器,我应该如何将用户重定向到另一个动作,如果我的测试失败?我想沿着原来的动作过关,使用户输入了这个遗漏preference后,我可以回重定向到原来的页面。
In building a custom ASP.MVC 3 Action Filter, how should I redirect the user to another action if my test fails? I would like to pass along the original Action so that I can redirect back to the original page after the user enters the missing preference.
在控制器:
[FooRequired]
public ActionResult Index()
{
// do something that requires foo
}
在自定义过滤器类:
in a custom filter class:
// 1. Do I need to inherit ActionFilterAttribute or implement IActionFilter?
public class FooRequired : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (TestForFoo() == false)
{
// 2. How do I get the current called action?
// 3. How do I redirect to a different action,
// and pass along current action so that I can
// redirect back here afterwards?
}
// 4. Do I need to call this? (I saw this part in an example)
base.OnActionExecuting(filterContext);
}
}
的我在寻找一个简单的ASP.MVC三滤的例子。到目前为止,我已经搜索导致Ruby on Rails的例子或ASP.MVC过滤器示例复杂得多比我更需要。我道歉,如果这已经被问过。的
推荐答案
您可以设置 filterContext.Result
到 RedirectToRouteResult
:
filterContext.Result = new RedirectToRouteResult(...);
这篇关于我该如何重定向用户从一个ASP.MVC 3动作过滤器的另一个控制器动作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!