gpt4 book ai didi

c# - MVC 为什么 RouteData 为空?

转载 作者:太空狗 更新时间:2023-10-30 00:19:30 28 4
gpt4 key购买 nike

我正在尝试更改我所有 Controller 的默认 ViewBag.Title,因此我想创建一个继承自 Controller 并在那里处理标题的基类:

public class MyController : Controller
{
public MyController()
: base()
{
var controller = default(object);

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

然后从我的 Controller 继承那个类:

public class GlobalSettingsController : MyController
{

但是当我运行该页面时,我得到一个空引用异常,因为 RouteData 为空。
怎么会是null呢?我能做什么?

最佳答案

在将任何值分配给 Controller 之前,您正在构造函数中执行代码。

执行此操作的更好位置是像这样在 OnActionExecuting 中:

    protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var controller = default(object);
if (RouteData.Values.TryGetValue("controller", out controller))
{
ViewBag.Title = controller;
}
}

关于c# - MVC 为什么 RouteData 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19536385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com