首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么RouteData为空?

为什么RouteData为空?
EN

Stack Overflow用户
提问于 2013-10-23 08:18:30
回答 1查看 2.8K关注 0票数 5

我试图为我的所有控制器更改默认的ViewBag.Title,所以我想要创建一个从Controller继承并在那里处理标题的基类:

代码语言:javascript
复制
public class MyController : Controller
{
    public MyController()
        : base()
    {
        var controller = default(object);

        if (RouteData.Values.TryGetValue("controller", out controller))
        {
            ViewBag.Title = controller;
        }
    }
}

然后从我的控制器继承该类:

代码语言:javascript
复制
public class GlobalSettingsController : MyController
{

但是当我运行页面时,我会得到一个空引用异常,因为RouteData是空的。

为什么它是空的?我能做些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 08:24:58

在将任何值分配给控制器之前,您正在构造函数内执行代码。

更好的方法是在OnActionExecuting中这样做:

代码语言:javascript
复制
    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
      base.OnActionExecuting(filterContext);
      var controller = default(object);
      if (RouteData.Values.TryGetValue("controller", out controller))
      {
         ViewBag.Title = controller;
      }
   }
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19536385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档