我知道我是否想要获得当前可以使用的动作;
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
);
答案 0 :(得分:2)
如果您的路线看起来没有任何东西可以为您提供原始字符串(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"]