【发布时间】:2011-09-22 07:46:17
【问题描述】:
我正在尝试使用 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。
【问题讨论】:
-
您可以控制网络服务?您能否提供一些服务的示例 url,以及它们的声明?
-
正确格式化您的代码:选择代码的每一行,然后按
ctrl-K或工具栏上的{}按钮
标签: asp.net web-services routing query-string routedata