所以我正在努力使用 AJAX 获取一些数据。一切似乎都可以正常工作,但我实际上并没有在我的页面上获取数据:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
function getMailDetail(mailId) {
$.ajax({
type: "GET",
url: "GetMail.ashx",
data: "mid=" + mailId,
success: function (data) {
console.log(data);
var pnlMail = $('#<%= pnlMail.ClientID %>');
var lblFrom = $('#<%= lblFrom.ClientID %>');
var lblDate = $('#<%= lblDate.ClientID %>');
var lblSubject = $('#<%= lblSubject.ClientID %>');
var lblMessage = $('#<%= lblMessage.ClientID %>');
lblFrom.text(data.From);
lblDate.text(data.Date);
lblSubject.text(data.Subject);
lblMessage.text(data.Message);
pnlMail.css("display", "block");
}
});
}
</script>
我已经登录data
以检查它的价值。由于这是我第一次尝试,我不确定会发生什么,但是,我相信我应该得到名称:值对。目前,控制台完全没有记录任何内容。一点价值都没有。
这是我的HttpHandler:
public void ProcessRequest(HttpContext context)
{
string mailid = context.Request.QueryString["mid"].ToString();
context.Response.ContentType = "text/json";
context.Response.Write(showMailDetail(mailid));
}
protected string showMailDetail(string id)
{
int mailid = int.Parse(id);
string From = "";
DateTime Date = DateTime.Now;
string Subject = "";
string Message = "";
MySqlContext db = new MySqlContext();
string sql = "select m.datesent, m.subject, m.message, u.firstname, u.lastname from mail m inner join users u on m.sender = u.userid where m.mailid = @id";
List<MySqlParameter> args = new List<MySqlParameter>();
args.Add(new MySqlParameter() { ParameterName = "@id", MySqlDbType = MySqlDbType.Int32, Value = mailid });
MySqlDataReader dr = db.getReader(sql, args);
if (dr.HasRows)
{
dr.Read();
From = (string)dr["firstname"] + " " + (string)dr["lastname"];
Date = dr.GetDateTime("datesent");
Subject = (string)dr["subject"];
Message = (string)dr["message"];
}
dr.Close();
string result = "{ 'From' : " + From + ", 'Date' : " + Date.ToString("yyyy/MM/dd HH:mm:ss") + ", 'Subject' : " + Subject + ", 'Message' : " + Message + " }";
return result;
}
谁能帮我弄清楚为什么我在这里没有得到任何东西?我已经为我做错这件事的可能性做好了充分的准备......
我根据http://www.codeproject.com/Articles/170882/jQuery-AJAX-and-HttpHandlers-in-ASP-NET上的文章编写了代码
编辑
发现我在我的 sql 中使用了不正确的列名 - 应该m.sender
不是m.senderid
......但是,我现在有另一个问题。
当我触发处理程序时,我在 Chrome 的控制台中得到以下信息:
GET GetMail.ashx?mid=1 500(内部服务器错误)jquery.min.js:2
编辑 2
更正了处理程序代码中的更多错误,现在任何地方都没有出现错误,但看起来点击实际上根本没有触发任何东西......
不知道如何在这里进行...