asp.net – 如何在MVC3中使用https生成绝对URL?
发布时间:2020-12-16 00:36:41 所属栏目: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-mvc – ASP.Net MVC 3:反向授权属性
- ASP.NET Core 2.0 + EF6 + Linux&nbs
- asp.net – 在文本框中输入按键时避免发出哔声
- ASP.NET MVC的排队解决方案
- asp.net – WebForms中的强类型容器
- 初识ABP vNext(5):ABP扩展实体
- asp.net – 如何关闭viewstate好?
- asp.net-mvc – ASP.NET MVC Textarea HTML帮助器在使用Ant
- asp.net – Facebox为输入添加逗号
- asp.net-mvc – ASP.NET MVC 3中的OutputCache行为
推荐文章
站长推荐
- ASP.net使用表单将数据插入到sql server表中
- asp.net-mvc – 修改后ASP.NET包缓存不清除
- asp.net-mvc – ASP.NET MVC SiteMap提供程序 –
- ASP.NET异步方法问题
- asp.net-mvc – 使用具有Razor视图的Spark主布局
- asp.net-web-api – Asp.Net核心WebAPI CORS无效
- ASP.NET core Web中使用appsettings.json配置文件
- asp.net-mvc-3 – 如何在MVC3中限制FileUpload中
- asp.net-mvc – 在哪里可以找到与asp.net MVC一起
- asp.net-mvc – 为什么在为JavaScript分配Model值
热点阅读