2016-12-25 54 views
1

我有後續基地控制器 -覆蓋視圖()在asp.net mvc的

public abstract class BaseController : Controller 
{ 
    protected string BaseUrl = "URL"; 
} 

所有其他控制器繼承上述基礎控制器 -

public class MyController : BaseController 
{  
    public ActionResult Something() 
    { 
     ViewBag.BaseUrl = base.BaseUrl; 
     return View(); 
    } 
} 

我不想寫ViewBag.BaseUrl = base.BaseUrl;在每個控制器的行動方法。相反,我會自動將此基礎網址傳遞給相關視圖。重寫View()可能嗎?

一個例子對我來說會更好。

+0

但是如果這樣做可能完全違背MVC「分離關注」概念 –

回答

3

如果所有控制器獲得這則只是把它放在這裏:

public abstract class BaseController : Controller 
{ 
    protected string BaseUrl = "URL"; 
    public BaseController() 
    { 
     ViewBag.BaseUrl = base.BaseUrl; 
    } 
} 

我甚至把它變成私有,如果我不想繼承類覆蓋它。

+0

就這麼簡單!非常感謝。 –