MVC3路由 - 如何在控制器内部获取URL

时间:2011-03-24 15:09:17

标签: asp.net-mvc model-view-controller asp.net-mvc-3 routing

当我在控制器中时,有人能告诉我如何获取用于调用路线的URL吗?这看起来很简单,但我找不到任何关于如何做的参考。如果你需要一个例子我可以解释更多..以前我问路线问题,有人告诉我如何检查哪条路线得到满足。这次我的需求有点不同。

谢谢,

曼迪

4 个答案:

答案 0 :(得分:6)

由于您有对Controller的Request属性的引用,您可以这样做:

var url = Request.Url.ToString();

答案 1 :(得分:6)

Use the Url property of the Request object

public ActionResult MyAction()
{
    var url = Request.Url;

    /// .....

    return View();    
}

That will return a Uri object with everything you need

您可能还对控制器的RouteData属性感兴趣,该属性提供有关已解析路由的更多详细信息。

答案 2 :(得分:1)

我会使用RouteData.Values属性而不是Request属性。在单元测试场景中,Request属性可能为null。

答案 3 :(得分:0)

您可以使用路由调试器查看哪个url与您的控制器/操作匹配

more information