我知道是否要执行当前操作;

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映射到route参数。

由于您对路径进行了硬编码,因此可以添加另一个值:

    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"]

10-04 11:47