2013-01-24 62 views
2

返回一個觀點,我知道該怎麼做,從父控制器重定向,假設我有如何從父控制器在MVC

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

謝謝。

+2

你嘗試'filterContext.Result =查看(somePameter );'? – tschmit007

+0

「我知道'熱做'從父控制器重定向,假設我有'是'如何做'? – 2013-01-24 10:46:22

+0

@ tschmit007真棒,謝謝,這是我需要的,簡單但我沒有弄清楚它自己。如果您將其添加爲答案,我會標記它。 – Burjua

回答

1

你嘗試

filterContext.Result = View(someParameter); 
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")'; 
+0

謝謝@ mope34,很好的答案 – Burjua