我需要执行以下操作:我已经准备好并正在运行一些控制器,但现在我想创建一个BaseController
. 我的每个人都Controllers
应该像这样继承它:
public class MySecondController : BaseController
到目前为止,那已经在运行了。现在的问题:
我想在ViewBag
这个基本控制器中添加一个。这ViewBag
应该可以从我的控制器中调用的每个视图访问。
如何实现这一点?
我需要执行以下操作:我已经准备好并正在运行一些控制器,但现在我想创建一个BaseController
. 我的每个人都Controllers
应该像这样继承它:
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);
}
}
.net Core 2019 更新:
using Microsoft.AspNetCore.Mvc.Filters;
public abstract class BaseController : Controller
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
ViewBag.someThing = "someThing"; //Add whatever
ViewData["someThingElse"] = "this works too";
TempData["anotherThing"] = "as does this";
base.OnActionExecuting(filterContext);
}
}