如何在ASP.NET MVC中获取当前虚拟路径?

时间:2009-09-18 15:26:35

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

如何从asp.net mvc视图中获取当前路径(url)?

如果没有办法在视图中获取它,如何在控制器中获取它以便将其传递给视图?

修改

我不想要网址的协议和主机部分。

4 个答案:

答案 0 :(得分:6)

这将为您返回视图中的网址:

'<%=Url.RouteUrl(ViewContext.RouteData.Values)%>

答案 1 :(得分:4)

这取决于你需要什么样的路径,因为有很多选择:

// given the url: http://mydomain/approot/my-route/?bar=baz

@Request.Url.PathAndQuery
// value: "/approot/my-route?bar=baz"
@Request.Path
@Request.CurrentExecutionFilePath
// value: "/approot/my-route"
@Request.ApplicationPath
// value: "/approot"
@Request.AppRelativeCurrentExecutionFilePath
// value: "~/my-route"
@Request.AppRelativeCurrentExecutionFilePath.Substring(2)
// value: "my-route"

答案 2 :(得分:2)

这是一种方式:

<%= Url.RequestContext.HttpContext.Request.CurrentExecutionFilePath %>

@Url.RequestContext.HttpContext.Request.CurrentExecutionFilePath

如果您使用Razor。

答案 3 :(得分:1)

尝试:

 <%= Request.Url.AbsolutePath.ToString() %>