2

我知道如何从父控制器重定向,假设我有

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

谢谢。

4

2 回答 2

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");
    }
}

这会将操作结果设置为您选择的视图,并保留当前 url。(请记住,必须根据当前路线在文件夹中或在共享文件夹中找到视图)

filterContext.Result = View("Name of view", "object model")';
于 2013-01-24T10:52:53.997 回答
1

你试过了吗

filterContext.Result = View(someParameter);
于 2013-01-24T10:55:11.460 回答