我正在开发一个需要与服务器通信的asp.net/jQuery应用程序。
该页面包含一系列复选框,我想配置jQuery告诉服务器这样一条简单的消息
“选中复选框ID 12”
那将变成简单的Json
{
"ID": "12",
"Checked" : "true"
}
我认为我不需要进入RIA服务,至少我希望不会。我想要做的就是记录服务器上检查的内容,以防他们关闭浏览器并稍后再回来。
用最少的代码实现这一目标的最佳技术是什么? WCF?
谢谢, 约翰
答案 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的底层序列化程序
从长远来看,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。