asp.net – 如何在MVC3中使用https生成绝对URL?
发布时间:2020-05-23 16:33:29 所属栏目:asp.Net 来源:互联网
导读:我正在使用MVC3,并尝试从https提供内容,问题是当我打电话Url.Content文件仍然从http使用相对URL提供。我以为这个问题在MVC3中被解决了,但我似乎找不到任何解决方案。有人知道这个问题在MVC3中是如何解决的,以及如何完成它,还是需要创建自己的帮助方法来
|
我正在使用MVC3,并尝试从https提供内容,问题是当我打电话Url.Content文件仍然从http使用相对URL提供。我以为这个问题在MVC3中被解决了,但我似乎找不到任何解决方案。有人知道这个问题在MVC3中是如何解决的,以及如何完成它,还是需要创建自己的帮助方法来生成基于协议的绝对URL? 解决方法您可以使用 VirtualPathUtility.ToAbsolute实现自己的解决方案。可能是这样的:public static class UrlHelperExtension {
public static string Absolute(this UrlHelper url,string relativeOrAbsolute) {
var uri = new Uri(relativeOrAbsolute,UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri) {
return relativeOrAbsolute;
}
// At this point,we know the url is relative.
return VirtualPathUtility.ToAbsolute(relativeOrAbsolute);
}
}
你会喜欢的: @Url.Absolute(Url.Content("~/Content/Image.png"))
(没有自己测试,随意玩弄,使其正常工作。) 这有助于您为您的内容文件生成绝对URL。为了更改生成的URL的方案,您可以创建一个额外的扩展方法来处理给定URL的方案,以使其成为HTTPS或其他。 正如哈立德在评论中指出的那样,类似的扩展方法已经可以在各种开源项目中使用,您可以使用(鉴于许可证许可)。一个例子可以发现here。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET – 构建自己的路由系统
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能正常工作?
- asp.net-mvc-3 – MVC3未终止字符串常量语法错误
- asp.net-mvc – Unity PerRequestLifetimeManager在不同请求
- asp.net-mvc – ASP.NET MVC验证消息未被本地化
- asp.net-mvc – 如何通过URL获取RouteData?
- asp.net-mvc – Sitecore 6.6中的静态视图渲染
- 用C#实现pdf文件的完整性验证
- 从wsdl文件更新asp.net WebService引用?
- asp.net – 使用Python Mechanize进行屏幕分析aspx – Java
