C# MVC中 获取访问地址。。。在线等~

lv9942 2012-01-10 09:41:07
我在C# MVC的网关中想获取访问这个网关方法的地址,
用过一下两种方法
1.System.Web.HttpContext.Current.Request.Url.ToString();
编译不报错,运行的时候提示“未将对象引用到对象的实例”
2.Request.ServerVariables["PATH_INFO"];
MVC中没有Requert这个类

在MVC中获取页面访问地址应该用什么方法啊?
求高手解答,在线等
...全文
533 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2012-01-11
  • 打赏
  • 举报
回复
具体再描述下wcf定义,用的是IIS Host吗?我回去试试

还有你要取得什么? 发起请求的页面?
比如:HomeController.Index() 里调用 Wcf 某个方法,在WCF里想取得 Home/Index ? <-- 这个不可能取得


lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 fangxinggood 的回复:]
System.ServiceModel.OperationContext.Current.IncomingMessageHeaders
[/Quote]
什么意思?这编译的时候就报错
lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 dengdayang1988 的回复:]
System.Web.Mvc命名空间下面也有一个Request,引入System.Web.Mvc就行
[/Quote]
。。。。没有 我测试了
机器人 2012-01-10
  • 打赏
  • 举报
回复
System.ServiceModel.OperationContext.Current.IncomingMessageHeaders
程序人生み 2012-01-10
  • 打赏
  • 举报
回复
不用加HttpContext.Current
程序人生み 2012-01-10
  • 打赏
  • 举报
回复
System.Web.Mvc命名空间下面也有一个Request,引入System.Web.Mvc就行
spring0906 2012-01-10
  • 打赏
  • 举报
回复
添加引用
using System.Web;

使用
HttpContext.Current.Request.Url.ToString();

我用的这个是没问题的,你那个报错确定是这句话报的错?
程序人生み 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lv9942 的回复:]

引用 11 楼 dengdayang1988 的回复:
控制里面是可以用Request的,我一直用Request.Url.ToString()获取访问地址。

是啊 关键我现在的WCF里面 那个方法我试了 没法用
[/Quote]

Request报错吗?
lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dengdayang1988 的回复:]
控制里面是可以用Request的,我一直用Request.Url.ToString()获取访问地址。
[/Quote]
是啊 关键我现在的WCF里面 那个方法我试了 没法用
程序人生み 2012-01-10
  • 打赏
  • 举报
回复
控制器里面是可以用Request的,我一直Request.Url.ToString()获取请求路径没问题呀
程序人生み 2012-01-10
  • 打赏
  • 举报
回复
控制里面是可以用Request的,我一直用Request.Url.ToString()获取访问地址。
lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 karascanvas 的回复:]
那到底是web 还是 wcf ? 服务又不一定是通过http通讯的
[/Quote]
WCF ,我们公司是做移动手机游戏开发的,iphone 端调用WCF
lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fangxinggood 的回复:]
WCF 如果作为 .svc 和 asp.net 在一个工程里,那么可以用。

如果是独立的 WCF 工程估计开启了 asp.net 兼容那么也可以用。

其他,就用不了了。

可以试试: System.ServiceModel.OperationContext.IncomingMessageHeaders.Action
[/Quote]
还是报错
System.ServiceModel.OperationContext.点不出IncomingMessageHeaders
机器人 2012-01-10
  • 打赏
  • 举报
回复
WCF 如果作为 .svc 和 asp.net 在一个工程里,那么可以用。

如果是独立的 WCF 工程估计开启了 asp.net 兼容那么也可以用。

其他,就用不了了。

可以试试: System.ServiceModel.OperationContext.IncomingMessageHeaders.Action
种草德鲁伊 2012-01-10
  • 打赏
  • 举报
回复
那到底是web 还是 wcf ? 服务又不一定是通过http通讯的
lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fangxinggood 的回复:]
web -> wcf ? 如果 wcf 不是 asp.net 兼容,不可能获取到 HttpContext
[/Quote]
不知道啊 我用
System.Web.HttpContext.Current.Request.ServerVariables["PATH_INFO"].ToString();
编译的时候也不报错,运行的时候就提示“未将对象引用到对象的实例”
机器人 2012-01-10
  • 打赏
  • 举报
回复
web -> wcf ? 如果 wcf 不是 asp.net 兼容,不可能获取到 HttpContext

lv9942 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]
关键你在哪里用上面的方法。Controller里可以的
[/Quote]
在WCF网关中,当访问WCF网关中某一个方法的时候 我要获取它的连接
机器人 2012-01-10
  • 打赏
  • 举报
回复
试试 ViewContext.RouteData.Values["action"]
机器人 2012-01-10
  • 打赏
  • 举报
回复
关键你在哪里用上面的方法。Controller里可以的

62,046

社区成员

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

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

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

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