2010-10-28 42 views
4

所以我有一個asp.net 2.0的web應用程序,我創建了一個web服務來從web表單發佈一些數據到數據庫。我現在想用jQuery/AJAX將數據發佈到服務器,但由於應用程序是2.0而不是3.5+,我沒有System.Web.Script.Services.ScriptService命名空間,這似乎是需要的(我發佈JSON對象)?如何從ASP.NET 2.0 Web應用程序中的客戶端腳本調用ASP.NET Web服務?

對此有沒有解決方法(無需將Web應用程序升級到3.5)?

在此先感謝。

編輯 我安裝http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&displaylang=en和restared VS2010,但仍不能使用的命名空間。

+0

〜有什麼理由不升級? – jcolebrand 2010-10-28 23:34:59

+0

網絡主機的限制,並不是我的電話將它移動到另一個主機不幸 – Morgan 2010-10-28 23:40:59

+0

,你可以在MSDN上閱讀,'System.Web.Script.Services.ScriptService'是一個類,可用於.NET框架的3.5版本。您不需要其他任何東西來解決您的問題... – Lorenzo 2010-10-29 00:17:32

回答

4

是的,你可以不用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> 
1

使用Ajax。並在您的項目中包含用於服務器端代碼的JSON Serialization/Deserialization的JSON.NET免費庫。

對於客戶端只使用JSON in javascript

+0

我正在使用ajax和json,但是我無法通過客戶端腳本在System.Web.Script.Services.ScriptService命名空間中調用web服務中的webmethod。 http://www.asp.net/ajax/tutorials/understanding-asp-net-ajax-web-services「要允許進行JSON調用,必須將ASP.NET AJAX擴展的ScriptService屬性應用於Web Service類。「 – Morgan 2010-10-28 23:39:42

+0

是的,這是事實。我一開始並沒有很好地解釋你的問題。我認爲你在序列化/反序列化領域存在問題。只是讀得太快......如果你使用webforms,我認爲你應該至少升級到.net 3.5 ......正如Drachenstern在評論中寫道:爲什麼你不想升級? – Lorenzo 2010-10-28 23:45:02

2

有一個全面的解決方案這一點。 (可用Net框架2.0+和Mono下)

PokeIn爲您提供了一個增強的JSON功能,讓你的服務器端的對象在客戶端使用。簡單地說,它是一個反向Ajax庫,可以很容易地從C#/ VB.NET調用JavaScript函數,並從JavaScript調用C#/ VB.NET函數。它具有許多功能,如事件排序,資源管理,異常處理,編組,Ajax上傳控制,單聲道兼容性,.NET Remoting集成和可擴展的服務器推送。

相關問題