我需要执行以下操作:
我已经准备好一些 Controller 并正在运行,但现在我想创建一个 BaseController
。
我的每个 Controller 都应该像这样继承它:
public class MySecondController : BaseController
到目前为止已经运行了。 现在的问题:
我想在这个基本 Controller 中添加一个ViewBag
。这个 ViewBag
应该可以从我的 Controller 中调用的每个 View 访问。
如何实现这一点?
最佳答案
您可以覆盖 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);
}
}
关于asp.net - 如何使用 ViewBag 创建 BaseController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16035296/