从路由数据中获取操作名称
本文关键字:操作 获取 路由 数据 | 更新日期: 2023-09-27 18:31:03
我知道我是否想获取我可以使用的当前操作;
ControllerContext.RouteData.GetRequiredString("action")
但是,如果我的路线允许http://mydomain/this has spaces
我如何得到"This Has Spaces
"而不是"ThisHasSpaces
"?
这是我路由表中的一个片段
routes.MapRoute(
"ThisHasSpaces", // Route name
"This Has Spaces", // URL with parameters
new { controller = "Home", action = "ThisHasSpaces", id = UrlParameter.Optional } // Parameter defaults
);
如果你的路由看起来像这样,没有什么可以给你原始字符串(除了Request.Uri
),因为你实际上并没有将 uri 映射到路由参数。
由于您对路由进行了硬编码,因此可以添加另一个值:
routes.MapRoute(
"ThisHasSpaces", // Route name
"This Has Spaces", // URL with parameters
new { controller = "Home", action = "ThisHasSpaces", orgstring = "This Has Spaces", id = UrlParameter.Optional } // Parameter defaults
);
并获取它:
ControllerContext.RouteData.Values["orgstring"]