我需要执行以下操作:
我已经准备好一些控制器并正在运行,但现在我想创建一个BaseController
。
我的每一个Controllers
应该像这样继承它:
public class MySecondController : BaseController
到目前为止已经运行了。现在的问题是:
我想添加一个ViewBag
进入这个基本控制器。这ViewBag
应该可以从我的控制器中调用的每个视图进行访问。
如何实现这一点呢?
您可以覆盖动作执行时 https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onactionexecuting(v=vs.118).aspx重写方法中的方法,您可以将数据传递到ViewBag https://msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.viewbag(v=vs.118).aspx字典。
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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)