我通常会使用 JSON 作为我的 AJAX 数据类型。 JSON(JavaScript 对象表示法)它的工作方式与 XML 非常相似,但它使用的数据减少了大约 70%。您还会发现在您的 javascript 中解析更容易。 您不必从 xml 初始化日期/数字对象!
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
]}
Thanks IBM For The Example
<people>
<person>
<firstName>Brett</firstName>
<lastName>McLaughlin</lastName>
<email>brett@newInstance.com</email >
</person>
<person>
<firstName>Jason</firstName>
<lastName>Hunter</lastName>
<email>jason@servlets.com</email >
</person>
<person>
<firstName>Elliotte</firstName>
<lastName>Harold</lastName>
<email>elharo@macfaq.com</email >
</person>
</people >
我发现 MVC JSON 框架在序列化、反序列化和忽略成员属性方面存在一些不足。我在 codeplex 上找到了 Json.NET 项目。它填补了 MVC JSON 未涵盖的所有功能空白。
所以在你的控制器中,我使用的是 Json.NET,请注意输出是 ContentResult,它没有有视图
public ContentResult ProcessRequestAction(string Email, string Password)
{
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
return Content(JavaScriptConvert.SerializeObject(product));
}
典型的 JQuery 代码,用于 JSON 请求
$.ajax({
type: "POST", /* GET OR POST */
url: "JSON_MVC_URL_HERE", /* your url here */
dataType: "json", /* json or xml */
data: null, /* JSON CODE HERE TO SET GET OR POST BACK PARAMS */
success: function(data){
alert(data.Name); /* Gets Name Element */
alert(data.Expiry); /* Gets Expiry Element */
alert(data.Price); /* Gets Price Element */
jQuery.each(data.Sizes, function() { /* Get Each Size */
alert(this);
});
}
});
$.getJSON 也可以,但缺少 http 请求类型 POST/GET