ASP.NET - 使用jQuery的基于JSON的Web服务的正确方法是什么?
将基于ASP.NET SOAP的Web服务转换为基于JSON的响应的正确方法是什么? ...然后从jQuery调用这些?ASP.NET - 使用jQuery的基于JSON的Web服务的正确方法是什么?
当基于jQuery的AJAX和ASP.NET集成时,什么是“最佳实践”? 文章?图书?
JSON转换到.NET类可以用System.Runtime.Serialization和System.Runtime.Serialization.JSON来完成。我怀疑你对设置从客户端到服务器的函数调用更感兴趣。我认为这值得尝试this tutorial。
在本教程中,您需要添加一个web服务'.asmx'文件。在asmx文件中,您将能够创建可从客户端脚本调用的函数。您的ASP.NET页面也可以引用生成的客户端脚本来调用.asmx函数。
如果你真的想要做的JSON序列不过,你也可以使用以下命令:
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
public class JsonSerializer
{
// To make a type serializeable, mark it with DataContractAttribute
// To make a member of such types serializeable, mark them with DataMemberAttribute
// All types marked for serialization then need to be passed to JsonSerialize as
// parameter 'types'
static public string JsonSerialize(object objectToSerialize, params Type[] types)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(
types[0], types.Skip(1));
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, objectToSerialize);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
return sr.ReadToEnd();
}
}
以下关于使用自定义的方法codproject.com会谈文章Extending an existing ASP.NET Web Service to support JSON由鲍比·苏亚雷斯属性来达到期望的结果。
我已经使用ASP.Net Ajax一段时间了,但是不用担心JSON或XML通信。相反,我使用Web服务直接返回可以使用innerHTML设置的内容。
这很容易实现。只需创建一个Web服务(ASMX)文件,并将您的方法声明为WebMethods(设置WebMethod属性)。
现在,您可以从Javascript代码中调用Web服务,就像常规函数一样。
函数的结果将返回给回调函数。这是结构
//Webmethod returns some HTML content
Myservice.DoSomething(myParam, callBackFunction);
//Content is set on the webpage
function callBackFunction(result){
document.getElementById('myElemID').innerHTML = result;
}
为什么不只是使用更新面板,如果你将有传递HTML的开销,而不是轻量级的json对象? json的想法是保持k的电线最小,因此具有快速的带外响应 – redsquare 2008-11-12 07:46:27
鲍比索雷斯的文章看起来很完美。我很想尝试实现它,因为它看起来会支持我的项目。 – htm11h 2012-10-03 14:04:50