【问题标题】:How to call an ASP.NET web service from client script in an ASP.NET 2.0 web application?如何从 ASP.NET 2.0 Web 应用程序中的客户端脚本调用 ASP.NET Web 服务?
【发布时间】:2011-05-02 04:02:43
【问题描述】:

所以我有一个 asp.net 2.0 Web 应用程序,并创建了一个 Web 服务来将一些数据从 Web 表单发布到数据库。我现在想使用 jQuery/AJAX 将数据发布到服务器,但由于应用程序是 2.0 而不是 3.5+,我没有似乎需要的 System.Web.Script.Services.ScriptService 命名空间(我正在发布JSON 对象)?

是否有解决方法(无需将 Web 应用程序升级到 3.5)?

提前致谢。

编辑 我安装了http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&displaylang=en并重新启动了VS2010,但仍然无法使用命名空间。

【问题讨论】:

  • ~有不升级的理由吗?
  • 网络主机的限制,不幸的是,我不想把它移到另一台主机上
  • 正如您在 MSDN 上所读到的,System.Web.Script.Services.ScriptService 是 .NET 框架 3.5 版中提供的一个类。你不需要任何其他东西来解决你的问题......
  • 网络主机目前不支持 3.5,因此出现了问题。无论如何,我将 .dll 文件复制到项目 bin 文件夹中,我现在可以使用它了。

标签: asp.net ajax


【解决方案1】:

是的,您可以在没有 3.5 的情况下执行此操作。首先,安装Microsoft's AJAX Extensions (aka ASP.NET AJAX 1.0)

接下来,您需要将HttpModule 添加到您的 web.config(或 machine.config;您的托管服务提供商可能已经进行了此配置):

<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>

【讨论】:

    【解决方案2】:

    对此有一个全面的解决方案。 (在 .Net framework 2.0+ 和 Mono 下可用)

    PokeIn 为您提供增强的 JSON 功能,使您的服务器端对象在客户端可用。简单地说,它是一个反向 Ajax 库,可以轻松地从 C#/VB.NET 调用 JavaScript 函数并从 JavaScript 调用 C#/VB.NET 函数。它具有许多功能,例如事件排序、资源管理、异常处理、编组、Ajax 上传控制、单声道兼容性、WCF 和 .NET 远程处理集成以及可扩展的服务器推送。

    【讨论】:

      【解决方案3】:

      使用 Ajax。并在您的项目中包含用于服务器端代码的JSON Serialization/Deserialization 的 JSON.NET 免费库。

      对于客户端,只需使用JSON in javascript

      【讨论】:

      • 我正在使用 ajax 和 json,但是如果没有 System.Web.Script.Services.ScriptService 命名空间,我无法从客户端脚本调用我的 Web 服务中的 Web 方法。 asp.net/ajax/tutorials/understanding-asp-net-ajax-web-services "要允许进行 JSON 调用,您必须将 ASP.NET AJAX 扩展的 ScriptService 属性应用到 Web 服务类。"
      • 是的,这是真的。一开始我没有很好地理解你的问题。我以为你在序列化/反序列化领域有问题。只是读得太快了...如果您使用的是网络表单,我认为您至少应该升级到 .net 3.5... 正如 drachenstern 在评论中所写:为什么您不想升级?
      猜你喜欢
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2014-02-24
      相关资源
      最近更新 更多