从RequestContext解析MVC路由自定义文件扩展名

时间:2011-05-18 14:03:48

标签: c# asp.net-mvc path requestcontext

我已经设置了两个自定义扩展以在IIS6中启用MVC。

因此,可以使用类似......的网址访问该网站。

mysite/mycontroller.europe/myaction

或者喜欢...

mysite/mycontroller.america/myaction

RequestContext实例中找到扩展程序的最有效方法是什么?

所以我希望能够写出类似......

的内容
var location = reqContext.......GetExtenstion(); // location = "europe"

并且即使站点/目录的设置稍有变化,显然也能正常工作。

2 个答案:

答案 0 :(得分:2)

定义路线:

routes.MapRoute(
    "DefaultWithExtension",
    "{controller}.{extension}/{action}",
    new { controller = "Home", action = "Index", extension = "america" }
);

然后:

var extension = RequestContext.RouteData.GetRequiredString("extension");

答案 1 :(得分:0)

此外,您可以将扩展名定义为控制器的所有相关操作的字符串参数,在这种情况下,它将直接可用。 e.g。

public ActionResult myaction(string extension)

这仍然需要上面定义的mapRoute条目。