我有一个用asp.net和mssql数据库编码的网站 我想用json检索位于我的数据库中的数据并将其打印在div中。该网站正在使用jQuery mobile。我需要它以异步方式工作 这是DataFetch.aspx,它应该从数据库中获取数据并以json格式打印:
<%
UserDB udb = new UserDB();
Users u = udb.SelectById((int)Session["loggedID"]);
TestDB tdb = new TestDB();
Tests t = tdb.SelectByStudentID((int)Session["loggedID"]);
//QueryString["task"] = 1 => Fetch Grades
if (int.Parse(Request.QueryString["task"]) == 1)
{
Response.Write("{ \"grades\":");
for (int i = 0; i < t.Count; i++)
{
if (i != 0)
Response.Write(",");
Response.Write(" [{\"subjectName\":\"" + t[i].lesson + "\", \"date\":\"" + t[i].date + "\", \"grade\":\"" + t[i].grade + "\"}]");
}
Response.Write(" }");
}
结果是json:
{ "grades": [{"subjectName":"Math", "date":"18/09/2016", "grade":"100"}] }
这就是我阅读和解释用DataFetch.aspx编写的json代码的方式:
var xhttp = new XMLHttpRequest();
var jsonResult;
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
jsonResult = JSON.parse(this.responseText);
document.write(jsonResult.grades[0].subjectName);
}
}
xhttp.open("GET", "DataFetch.aspx?task=" + task, true);
xhttp.send();
};
&#34; this.responseText&#34;包括html标记和一切。是否有一种优雅的方法来解决它?
答案 0 :(得分:0)
[WebMethod]
public static string OnGetData(string task)
{
//////
return jsonResult; /// your json data
}
<script type="text/javascript">
$(function() {
var mytask = task;
$.ajax({
type: "POST",
url: "DataFetch.aspx/OnGetData",
data: "{task:" + mytask + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
///your code
}
});
});
</script>