首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net mvc-3中完整Url的url帮助程序

asp.net mvc-3中完整Url的url帮助程序
EN

Stack Overflow用户
提问于 2011-08-17 16:37:09
回答 4查看 12.1K关注 0票数 23

写作

代码语言:javascript
复制
@Url.Content("~/Something/Something.html")

在razor渲染中

代码语言:javascript
复制
/AppFolder/Something/Something.html

有没有一种方法可以像http://www.something.com/AppFolder/Something/Something.html一样呈现完整的网址,而不会遭到可怕的黑客攻击?(比如将协议和域存储在AppConfig中,并将字符串连接到其中)

有没有像@Url.FullPath("~/asdf/asdf")或类似的助手?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-08 17:19:48

@Url.RouteURL()并没有很好地回答这个问题。它确实适用于命名路由,但不适用于任意虚拟路径。下面是生成完整的出站url的快速助手方法。您可以根据所需的控制程度为各种方案(https)创建重载。

代码语言:javascript
复制
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;
    }
}
票数 23
EN

Stack Overflow用户

发布于 2011-10-12 03:30:57

有关答案,请参阅this blog post

基本上,您需要做的全部工作包括协议参数,例如

代码语言:javascript
复制
Url.Action("About", "Home", null, "http")
票数 25
EN

Stack Overflow用户

发布于 2017-07-03 19:22:07

对于任何需要在WebAPI 2.2和/或MVC5中构建URL的人来说,这对我很有效:

代码语言:javascript
复制
// works in a controller
var requestUri = this.Request.RequestUri;
// just the http/s and the hostname; ymmv
string baseUrl = requestUri.Scheme + "://" + requestUri.Authority + "/";
// build your url for whatever purpose you need it for
string url = baseUrl + "SomeOtherController?id=" + <some_magic_value>;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7089915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档