有没有更好的方法来获得没有动作部分的控制器的完全限定URL?

时间:2013-08-12 08:50:17

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我需要控制器的完全限定网址才能在Javascript中构建网址。但是,我不需要特定的操作,因为这将根据客户端代码而改变。 我试过(在我的_Layout.cshtml中)

Url.RouteUrl(new { controller = "Foo" })

但是,这也总是能让我对当前观点采取行动,例如: “/美孚/酒吧”。 当然,我现在可以扔掉最后一个斜线以及之后的所有东西,但在我看来必须有更好的方法来做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以使用:

Request.Url.Host + Url.Action("Index", "Foo");

它会在生成URL时自动删除操作部分。

答案 1 :(得分:0)

自己找到解决方案。您可以将操作名称显式设置为空字符串:

Url.RouteUrl(new { controller = "Foo", action = "" })