有没有在不同情况下能完全代替这段代码的内置对象属性呢?

潮起潮落 2014-01-06 03:56:42

var curRequest = HttpContext.Current.Request;

string prefixUrl = curRequest.Url.Host + ":" + curRequest.Url.Port + curRequest.ApplicationPath + (curRequest.ApplicationPath == "/" ? "" : "/");


1.本地调试,比如localhost:8080/Controller/Action/P1/P2
2.部署于IIS(虚拟目录方式),比如localhost:90/Website1/Controller/Action/P1/P2
3.部署于IIS(单独网站方式),比如www.website.com:7888/Controller/Action/P1/P2

只要获取到的是
1.localhost:8080
2.localhost:90/Website1
3.www.website.com:7888
即可。总觉得应该有更直接的办法吧,但是想不起来,找了下也没找到。
...全文
131 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
潮起潮落 2014-01-06
  • 打赏
  • 举报
回复
在非虚拟目录的情况下,直接后面拼斜杠会多一个斜杠,我还给判断去掉了。。 强迫症。。
潮起潮落 2014-01-06
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
Request.Url.Authority + Request.ApplicationPath
嗯。。用Request.Url.Authority简便了一下,不用拼端口了。
md5e 2014-01-06
  • 打赏
  • 举报
回复
Request.Url.Authority + Request.ApplicationPath
Im_Sorry 2014-01-06
  • 打赏
  • 举报
回复
引用 楼主 KongHuLu 的回复:

var curRequest = HttpContext.Current.Request;

string prefixUrl = curRequest.Url.Host + ":" + curRequest.Url.Port + curRequest.ApplicationPath + (curRequest.ApplicationPath == "/" ? "" : "/");
1.本地调试,比如localhost:8080/Controller/Action/P1/P2 2.部署于IIS(虚拟目录方式),比如localhost:90/Website1/Controller/Action/P1/P2 3.部署于IIS(单独网站方式),比如www.website.com:7888/Controller/Action/P1/P2 只要获取到的是 1.localhost:8080 2.localhost:90/Website1 3.www.website.com:7888 即可。总觉得应该有更直接的办法吧,但是想不起来,找了下也没找到。
JS算么?如果是后台的,我觉的应该是没有把,我现在也是这样用的!闲麻烦,自己封装下!

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧