Ser*_*rge 4 c# asp.net-mvc asp.net-mvc-5
我正在尝试更改所有控制器的默认ViewBag.Title,所以我想创建一个继承自Controller的基类并在那里处理标题:
public class MyController : Controller
{
public MyController()
: base()
{
var controller = default(object);
if (RouteData.Values.TryGetValue("controller", out controller))
{
ViewBag.Title = controller;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后从我的控制器继承该类:
public class GlobalSettingsController : MyController
{
Run Code Online (Sandbox Code Playgroud)
但是当我运行页面时,我得到一个空引用异常,因为RouteData为null.
它是怎么回事?我该怎么办?
Nic*_*sen 10
在将任何值分配给控制器之前,您正在构造函数内执行代码.
更好的地方是OnActionExecuting这样:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var controller = default(object);
if (RouteData.Values.TryGetValue("controller", out controller))
{
ViewBag.Title = controller;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |