asp.net - 如何使用 ViewBag 创建 BaseController

标签 asp.net asp.net-mvc

我需要执行以下操作: 我已经准备好一些 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/

相关文章:

c# - 在 ASP.net MVC 5 服务器或客户端中缓存的位置

asp.net-mvc - ASP.NET MVC : View sometimes returned as application/json instead of text/html

c# - 使用通用接口(interface)和简单注入(inject)器的依赖注入(inject)

.net - 电子邮件模板的存储位置

c# - 如何以编程方式从模板 excel 工作表创建 excel 工作表?

asp.net - 将类组织到 App_Code 文件夹中的命名空间中无法按预期工作

c# - ASP.NET - @ 语法和 <% %> 之间的区别?

asp.net-mvc - 如何在Require.js中引用捆绑的js文件(asp.net mvc4)?

c# - 如何在 C# 中构建搜索引擎

c# - 将 MVC 4 应用程序发布到 Azure 后的身份验证问题