我需要執行以下操作: 我有一些控制器已準備好並正在運行,但現在我要創建一個BaseController
。 我的每Controllers
應該繼承它是這樣的:如何使用ViewBag創建BaseController
public class MySecondController : BaseController
這就是已經到目前爲止運行。 現在問題:
我想在此基本控制器中添加一個ViewBag
。這個ViewBag
應該可以從我的控制器中調用的每個視圖訪問。
如何實現這一點?
我需要執行以下操作: 我有一些控制器已準備好並正在運行,但現在我要創建一個BaseController
。 我的每Controllers
應該繼承它是這樣的:如何使用ViewBag創建BaseController
public class MySecondController : BaseController
這就是已經到目前爲止運行。 現在問題:
我想在此基本控制器中添加一個ViewBag
。這個ViewBag
應該可以從我的控制器中調用的每個視圖訪問。
如何實現這一點?
您可以覆蓋OnActionExecuting方法,在覆蓋的方法中您可以將數據轉換爲ViewBag
字典。
public abstract class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
ViewBag.someThing = "someThing"; //Add whatever
base.OnActionExecuting(filterContext);
}
}
I會建議讓你的BaseController抽象如公共抽象類BaseController:控制器 –
你也可以填補ViewBag
當newing了基本控制器
Public MustInherit Class BaseController : Inherits Controller
Public Sub New()
ViewBag.ErrorMessage= "someThing"; //Add whatever
End Sub
End Class
然後該構造函數將被調用的所有繼承類:
Public Class OrderController : Inherits BaseController
Function Index() As ActionResult
Return View()
End Function
End Class
和可從您的剃刀查看:
@ViewBag.ErrorMessage
Mystery Downvoter? – KyleMit
我已經回答了你解釋如何做到這一點的其他問題:http://stackoverflow.com/questions/16034728/how-to-access-the-project-properties-in-a-cshtml-razor-file –