gpt4 book ai didi

asp.net - 如何从 .Net 4.0 中的 Web 服务获取 RouteData 值

转载 作者:行者123 更新时间:2023-12-03 01:12:48 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com