Asp.net mvc 在ASP.NET MVC视图中获取完整服务器路径的首选方法是什么?

Asp.net mvc 在ASP.NET MVC视图中获取完整服务器路径的首选方法是什么?,asp.net-mvc,Asp.net Mvc,我是ASP.NET MVC新手,在视图中工作时,我正在尝试获取操作的完整url。我需要将其作为回调提交给第三方API。例如,我需要的是 当我使用 <%= Url.Action("action", "controller") %> 我明白了 /控制员/行动 我知道有几种方法可以将服务器基本路径添加到该视图中,但我想知道在ASP.NET MVC视图中,首选的方法是什么 编辑:只是澄清一下,它不是当前视图/操作的URL,而是同一控制器中的另一个操作的URL。编辑:对于任何视图/控制

我是ASP.NET MVC新手,在视图中工作时,我正在尝试获取操作的完整url。我需要将其作为回调提交给第三方API。例如,我需要的是

当我使用

<%= Url.Action("action", "controller") %>

我明白了

/控制员/行动

我知道有几种方法可以将服务器基本路径添加到该视图中,但我想知道在ASP.NET MVC视图中,首选的方法是什么


编辑:只是澄清一下,它不是当前视图/操作的URL,而是同一控制器中的另一个操作的URL。

编辑:对于任何视图/控制器组合,不确定是否会找到比此更简单的内容

http://<%=Request.Url.Host %><%=Url.Action("action", "controller")%>
http://

为了捕捉协议(http/https)、不同端口和虚拟路径的变化(不能总是假设我们将在服务器根目录下),我最终采用了以下解决方案:

<%= Request.Url.GetLeftPart(System.UriPartial.Authority) + Url.Action("action", "controller")%>


我正在努力将其转换为一种扩展方法,以使其更美观。

我写了一篇博客文章,讨论了名为的完整路径生成。你一定想看看


以下是我建议写的扩展:

/// <summary>
/// Generates a fully qualified URL to an action method by using
/// the specified action name, controller name and route values.
/// </summary>
/// <param name="url">The URL helper.</param>
/// <param name="actionName">The name of the action method.</param>
/// <param name="controllerName">The name of the controller.</param>
/// <param name="routeValues">The route values.</param>
/// <returns>The absolute URL.</returns>
public static string AbsoluteAction(this UrlHelper url,
    string actionName, string controllerName, object routeValues = null)
{
    string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;

    return url.Action(actionName, controllerName, routeValues, scheme);
}
//
///使用生成操作方法的完全限定URL
///指定的操作名称、控制器名称和路由值。
/// 
///URL帮助程序。
///操作方法的名称。
///控制器的名称。
///路线值。
///绝对URL。
公共静态字符串AbsoluteAction(此UrlHelper url,
string actionName、string controllerName、object RouteValue=null)
{
字符串scheme=url.RequestContext.HttpContext.Request.url.scheme;
返回url.Action(actionName、controllerName、RouteValue、scheme);
}

Request.Url返回完整的Url,包括协议(http://)、Url(www.mydomain.com/mypath)和查询字符串(?id=5)

对于经典的ASP.NET MVC标记,它将是

<%=Request.Url%>   <%'Classic tags%>

此处指向您内容的链接已失效。不要链接到博客帖子,请发布实际答案。@JohnBoker对不起,我最近违反了重定向规则。我已经相应地更新了我的答案。
<%=Request.Url%>   <%'Classic tags%>