我正在尝试使用来自.cs页面的数据填充两个文本框,该页面返回JSON对象但文本框不会填充。它没有显示错误,在firebug上我看到了对象。 这是回复:
{ “d”: “[{\” ProjectContactFirstName \ “:\” asdfa \ “\ ”ProjectContactLastName \“:\ ”ADSF \“}]”}
这是执行查询的AJAX代码和WebMethod。
$.ajax({
url: "view-requests.aspx/getProjectByID", // Current Page, Method
data: JSON.stringify({ id: id }), // parameter map as JSON
type: "POST", // data has to be POSTed
contentType: "application/json", // posting JSON content
dataType: "JSON", // type of data is JSON (must be upper case!)
timeout: 10000, // AJAX timeout
success: function (result) {
//alert(result);
$("#txtContactFirstEdit").val(result.ProjectContactFirstName); <-- How do I populate from JSON?
$("#txtContactLastEdit").val(result.ProjectContactLastName); <-- How do I populate from JSON?
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}
});
这是WebMethod,它返回JSO以便成功填充文本框。只是不确定如何将它交给AJAX。
[WebMethod]
public static string getProjectByID(int id)
{
using (dbPSREntities4 myEntities = new dbPSREntities4())
{
var thisProject = myEntities.tbProjects.Where(x => x.ProjectID == id);
var columns = thisProject.Select(x => new { x.ProjectContactFirstName, x.ProjectContactLastName }).ToList();
JavaScriptSerializer serializer = new JavaScriptSerializer();
var json = serializer.Serialize(columns);
return json;
}
答案 0 :(得分:1)
您的代码返回一个包装在对象中的JSON数组,因此您的代码看起来应该更像这样:
success: function (result) {
//alert(result);
$("#txtContactFirstEdit").val(result.d[0].ProjectContactFirstName); <-- How do I populate from JSON?
$("#txtContactLastEdit").val(result.d[0].ProjectContactLastName); <-- How do I populate from JSON?
}