我正在尝试使用 Web 服务从 URL 中提取 id 号,以便它可以用作 select 语句中 where 子句的参数,该语句根据记录的 id 号从数据库中生成数据。然后,该数据将被传递回页面以填充 jQuery 模式弹出窗口中的元素。
使用静态 ID 号(例如:)一切正常string postid = "120"
,但我不知道如何从 URL 中获取 ID 号。我在 .Net 4 中使用路由,并且在页面中访问路由的方法在 Web 服务中不起作用。在页面中,我只是做类似这样的事情var id = RouteData.Values["id"];
并获取 id,但是当我在 Web 服务中这样做时,我得到了一个错误:
CS0120:非静态字段、方法或属性需要对象引用
'System.Web.Routing.RouteData.Values.get'
概括:
我从一个详细信息页面访问了 Web 服务,我想在其中获取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
它不是目录或querystring
.