在asp.net mvc-3中完整URL的url帮助器

Soo*_*ead 22 asp.net urlhelper asp.net-mvc-3

写作

@Url.Content("~/Something/Something.html")
Run Code Online (Sandbox Code Playgroud)

用剃刀渲染

/AppFolder/Something/Something.html
Run Code Online (Sandbox Code Playgroud)

有没有办法像http://www.something.com/AppFolder/Something/Something.html没有恶劣的黑客一样呈现完整的URL ?(比如将协议和域存储在其中AppConfig,并将字符串连接到它)

是否有类似@Url.FullPath("~/asdf/asdf")或类似的帮手?

ETF*_*fax 24

请参阅此博客文章以获取答案.

基本上,您需要做的就是包括协议参数,例如

Url.Action("About", "Home", null, "http")
Run Code Online (Sandbox Code Playgroud)

  • Url.Content!= Url.Action (9认同)

Rom*_*man 23

@ Url.RouteURL()不安静地回答这个问题.它适用于命名路由,但不适用于任意虚拟路径.这是生成完整出站URL的快速帮助方法.您可以根据所需的控制程度为各种方案(http [s])创建重载.

public static class UrlHelperExtension
{
    public static string ContentFullPath(this UrlHelper url,string virtualPath)
    {
        var result = string.Empty;
        Uri requestUrl = url.RequestContext.HttpContext.Request.Url;

        result = string.Format("{0}://{1}{2}",
                               requestUrl.Scheme,
                               requestUrl.Authority, 
                               VirtualPathUtility.ToAbsolute(virtualPath));
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)