我知道如何从父控制器重定向,假设我有
public class _ParentController : Controller {
...
}
public class HomeController : _ParentController {
...
}
我可以向_ParentController
添加方法:
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
if (condition) {
filterContext.Result = Redirect(path);
}
}
现在我需要返回一个视图或者执行Server.Transfer(我需要保留url)。在这种情况下,Server.TransferRequest
对我不起作用,还有其他办法可以做我需要的吗?我使用.NET MVC3和IIS7.5
感谢。
答案 0 :(得分:2)
例如,您可以:
protected override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
if (((filterContext.Exception is SecurityException)) ||
((filterContext.Exception is AuthenticationException)))
{
filterContext.ExceptionHandled = true;
filterContext.Result = View("Error", "You don't have permission");
}
}
这会将操作结果设置为您选择的视图,并保留当前网址。 (请记住,必须根据当前路线或共享文件夹在文件夹中找到该视图)
filterContext.Result = View("Name of view", "object model")';
答案 1 :(得分:1)
你试过吗
filterContext.Result = View(someParameter);