jquery提供的簡化版的ajax呼叫方法通常如下:
程式碼如下: function post() {
$("#divWait").show();
$("#btnPost").attr("disabled", "disabled");
ent").val()
else {
在ashx }
context.Response.ContentType = "application/json";
如果是回傳的html或是text的話可以如下寫法
context.Response.ContentType = "text/plain";
如果ajax方法中設定的回傳值是json時,ashx程式碼回傳的格式必須是json格式的資料。
把一個物件轉換成json格式,常用方法就是採用開源的第三方類別庫json.net,Newtonsoft.Json.dll.
JsonConvert.SerializeObject方法就可以轉換了。返回json格式後,jquery就可以採用XXX.xxx的方式取得值了。
JsonConvert在處理datetime格式的時候,會回傳類似1198908717056的絕對值,因此,在處理datetime的時候,要做一下轉換。具體語句如下:
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
//這裡使用自訂日期'-'MM'-'dd' 'HH':'mm':'ss";
string output = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);
舉個例子:
ashx完整程式碼如下:
namespace nnn
{
///
/// PostIt 的摘要说明
///
public class PostIt : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
try
{
string msgContent = context.Request["msgContent"] ?? "";
ModelContent m = new ModelContent()
{
author = "",
categoryid = -1,
title = "",
content = msgContent,
datetime = DateTime.Now,
key = "",
createdate = DateTime.Now,
lastmodifydate = DateTime.Now,
ip = context.Request.UserHostAddress
};
//BLLContent bll = new BLLContent();
//bll.Add(m);
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";
string output = JsonConvert.SerializeObject(m, Newtonsoft.Json.Formatting.Indented, timeConverter);
context.Response.Write(output);
}
catch (Exception ex)
{
context.Response.Write(ex.Message);
}
}
public bool IsReusable
{
return 稱為;
}
}
}
}
}
}