- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Web 服务从 URL 中提取 ID 号,以便可以将其用作 select 语句中 where 子句的参数,该语句根据记录的 ID 号从数据库生成数据。然后,该数据将被传回页面以填充 jQuery 模式弹出窗口中的元素。
使用静态 ID 号(例如:string postid = "120"
)一切正常,但我不知道如何从 URL 获取 ID 号。我在 .Net 4 中使用路由,并且在页面中访问路由的方法在 Web 服务中不起作用。在页面中,我只是执行诸如 var id = RouteData.Values["id"];
之类的操作并获取 id,但是当我在 Web 服务中执行此操作时,出现错误:
CS0120: An object reference is required for the non-static field, method, or property
'System.Web.Routing.RouteData.Values.get'
摘要:
我从详细信息页面访问网络服务,我想在其中获取发出请求的页面的RouteData
。我想像在页面上使用 RouteData.Values
一样轻松地完成此操作,这与现在已过时的 Request.Querystring
一样简单。
现在我更困惑了,因为虽然我可以轻松地为 Web 服务添加新路由,但由于 webservice.asmx/webmethod 语法,我不知道我会使用 jQuery Ajax 来调用它。
现在我的 jQuery Ajax 中有 URL:“../webservices/googlemaps.asmx/GetGoogleMap”,但这不是真正的 URL。它仅存在于 jQuery 中的某个地方,并且仅使用 JavaScript 调用服务的方式也不是真正的 URL,其 webservice.webmethod()
在本例中为 googlemaps.GetGoogleMap()
.
我将尝试为 webservices/googlemaps.asmx/GetGoogleMap/postid
注册路线,但我怀疑它是否有效,因为 GetGoogleMap
不是目录或 查询字符串
。
最佳答案
获取当前http请求并使用RequestContext获取请求上下文的属性 - 它具有当前的 routing data 。例如,
var id = HttpContext.Current.Request.RequestContext.RouteData.Values["id"];
如果是基于 WCF 的 Web 服务,请确保该服务参与 ASP.NET 管道(请参阅 ASP.NET Compatibility)
编辑:抱歉,答案具有误导性 - 除非在路由引擎中注册了 Web 服务 URL,否则上述内容将不起作用。但是,它可能无法解决您检索 id 的问题 - 您使用哪种服务实现?您发出的是 GET 请求还是 POST 请求?通常,Web 服务处理程序 (asmx) 或 WCF 管道应将 GET/POST 参数转换为方法参数。发布您的 Web 服务代码以及如何调用它。
关于asp.net - 如何从 .Net 4.0 中的 Web 服务获取 RouteData 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511323/
我是一名优秀的程序员,十分优秀!