• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

潮起潮落 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
即可。总觉得应该有更直接的办法吧,但是想不起来,找了下也没找到。
...全文
63 点赞 收藏 4
写回复
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算么?如果是后台的,我觉的应该是没有把,我现在也是这样用的!闲麻烦,自己封装下!
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告