这个问题已经在这里有了答案 :
如何在ASP.NET MVC中找到操作的绝对URL? (9个答案)
2年前关闭。
是否有获取操作完整URL的内置方法?
我正在寻找类似的东西GetFullUrl("Action", "Controller")会返回类似的东西http://www.fred.com/Controller/Action。
GetFullUrl("Action", "Controller")
http://www.fred.com/Controller/Action
我正在寻找它的原因是为了避免在生成的自动电子邮件中对URL进行硬编码,以便始终可以相对于站点的当前位置生成URL。
Url.Action的重载将所需的协议(例如,http,https)作为参数-如果指定此参数,则将获得完全限定的URL。
这是一个在动作方法中使用当前请求协议的示例:
var fullUrl = this.Url.Action("Edit", "Posts", new { id = 5 }, this.Request.Url.Scheme);
HtmlHelper(@Html)也具有ActionLink方法的重载,您可以在剃刀中使用它创建锚元素,但是它还需要hostName和fragment参数。所以我只是选择再次使用@ Url.Action:
<span> Copy <a href='@Url.Action("About", "Home", null, Request.Url.Scheme)'>this link</a> and post it anywhere on the internet! </span>