- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试更改我所有 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/
使用 ASP.Net 路由时,如何从代码隐藏中获取 RouteData? 我知道您可以从 RouteHandler 的 GetHttpHander 方法获取它(您将获得 RequestContext)
我试图在我的组件中接收 RouteData,但它没有像我预期的那样工作。我收到的消息是:ORIGINAL EXCEPTION: Invalid argument(s): No provider fou
令我惊讶的是,竟然没有文章详细回答这个问题。我有几个与 RouteData.Values[""] 相关的问题。 我看到了这段代码: public ActionResult Index() {
我的路线代码如下所示: RouteTable.Routes.MapPageRoute("IDP", "Person/{IDP}", "~/Person.aspx") 现在我想获取表单上的数据,通常它
给出以下代码: public class MyActionFilter : ActionFilterAttribute { public override void OnActionExecu
我通过 NuGet 将 Microsoft.Asp.Net.FriendlyUrls.Core.dll 安装到现有的 asp.net 4.5 Webforms 网站。 我的 RouteConfig 文
我正在开发一个 .net 核心应用程序。我正在尝试访问中间件中的路由数据,但它始终返回 null。 这是 Controller 基本路线 [Route("User/{UserId}/Quote")]
我正在自定义 Action Filter 中设置一些 RouteData filterContext.RouteData.Values.Add("accountId", accountId); fil
如果在使用 URL 路由时查询字符串中不存在以下语句,我将收到以下语句的 null 异常错误,我该如何处理以下语句的 NullReferenceException string lang = Rout
我正在尝试以编程方式将查询字符串映射到我在 RouteConfig.cs 文件中创建的 SEO 友好路由 URL,但似乎遇到困难。 我的路由配置如下所示: routes.MapRoute( n
我正在尝试更改我所有 Controller 的默认 ViewBag.Title,因此我想创建一个继承自 Controller 并在那里处理标题的基类: public class MyControlle
我正在构建一个连接到 Application_EndRequest/Application_BeginRequest 的简单性能记录器 我想将 action 和 controller 的名称作为某种
所以我创建了自己的 ControllerFactory 并重载了 GetControllerSessionBehavior 以扩展 MVC 行为。 为了完成我的自定义工作,我必须对调用的操作使用反射。
运行时出现错误 string quote = Page.RouteData.Values["quote"].ToString() ?? string.Empty; 错误:对象引用未设置到对象的实例。
当我尝试使用 TypeScript 在 Angular2 Beta 中使用 RouteData 时遇到问题。 我将它注入(inject)构造函数并正确导入 import {RouteConfig, R
我创建了一个新的 Web 窗体 (ASP.NET 4.5) 项目,我正在尝试让 URL 路由正常工作。 RouteConfig.cs 看起来像这样: routes.MapPageRoute("surv
我想使用 RouteConfig 将一个变量从我的 AppComponent 传递到 Coursescomponent,但是路由配置中的“data”属性只能传递常量参数,它无法识别“this”。有办法
如果我有这样的操作: public ActionResult DoStuff(List stuff) { ... ViewData["stuff"] = stuff; ...
我有使用 Microsoft.AspNet.FriendlyUrls 在 ASP.NET c# WebForms 中工作的路由,但 不是 对于所有页面。 下面是一个例子: routes.MapPage
我的 Global.asax 中有一条规则,如下所示: RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}", "~/default.as
我是一名优秀的程序员,十分优秀!