什么是从jQuery获取JSON对象到.net的最简单方法?

时间:2011-12-10 22:26:45

标签: jquery wcf json

我正在开发一个需要与服务器通信的asp.net/jQuery应用程序。

该页面包含一系列复选框,我想配置jQuery告诉服务器这样一条简单的消息

“选中复选框ID 12”

那将变成简单的Json

{
     "ID": "12",
     "Checked" : "true"
}

我认为我不需要进入RIA服务,至少我希望不会。我想要做的就是记录服务器上检查的内容,以防他们关闭浏览器并稍后再回来。

用最少的代码实现这一目标的最佳技术是什么? WCF?

谢谢, 约翰

3 个答案:

答案 0 :(得分:1)

ASMX ScriptServices(或ASPX的页面方法,如果您希望将此代码与特定页面的代码保持一致)是一种很好的方法,可以在不影响WCF复杂性的情况下完成此操作。如果您使用jQuery的$.ajax()从客户端发送与服务器端的类匹配的JSON,ASP.NET将自动处理JSON与该对象之间的映射:http://encosia.com/using-complex-types-to-make-calling-services-less-complex/

事实上,如果您最终需要处理JSON中的DateTimes,Dictionaries或枚举,ASMX的底层序列化程序比WCF更好。

从长远来看,Web API将在ASMX的简单性和WCF的附加功能之间达到最佳点。在我的实验中,将ASMX服务移动到Web API非常容易。因此,如果在ASP.NET 5中不推荐使用ASMX,那么今天你可以选择简单的选项而不用担心将自己画成一个角落(但是,ASMX在“添加新项目”列表中的仍然为“Web服务” “在Visual Studio v.Next开发人员预览版中,所以你真的不得不谈论它即将贬值的事情。”

答案 1 :(得分:0)

不确定您的网页是如何创建的......我最近创建了一个动态驱动的页面,并在后台传入JSON对象的JSON字符串表示,然后在页面加载时获取该JSON字符串并转向它成为一个JSON对象。然后,当用户进行更改时,我在后台操作该JSON对象并将其发送到服务器并从那里传递。

我猜你可以动态创建一个JSON对象,每当选中一个复选框,然后通过jquery进行ajax调用。现在,每次选中一个复选框时,是否需要添加到JSON对象或创建自己的单个对象?

如果您只想告诉服务器某个对象已被选中,为什么还需要一个JSON对象?

答案 2 :(得分:0)

我发现最好的方法是使用jQuery $ .post()和一个通用处理程序的组合,从而将值拉出Request.Form集合,因此我根本不需要参与WCF。