【发布时间】:2021-11-15 00:11:03
【问题描述】:
我正在尝试解析 json 数据,但它没有显示在标签元素内。一切正常。如果我添加一个警报框,则数据显示在警报 user.Name 但 $("#lblName").text(user.Name);没有显示数据。
下面是我的代码。如果我做错了什么,请告诉我。
<div class="col-lg-4 col-md-4 col-sm-4">
<b>Total Leaves :</b>
<asp:Label ID="lblName" runat="server" />
Ajax 代码-
<script type="text/javascript">
function test() {
var name = $('#<%=txtSearch.ClientID%>').val();
$.ajax({
type: "POST",
url: "Applyleave.aspx/GetPersonDetails",
data: '{name: "' + name + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if (response.d != '') {
var user = JSON.parse(response.d);
$("#lblName").text(user.Name);
}
else {
$('#lblName').html('no datafound');
}
},
error: function (response) {
alert(response.responseText);
}
});
}
</script>
C#代码:
[WebMethod]
public static string GetPersonDetails(string name)
{
string jsonData = "";
string constr = ConfigurationManager.ConnectionStrings["chsDB"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select c_empname from EmployeeDetail WHERE i_chsempid = @SearchText", con))
{
string[] splitData = name.Split('-');
int employeeid = Convert.ToInt32(splitData[0]);
cmd.Parameters.AddWithValue("@SearchText", employeeid);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
var input = new
{
Name = sdr["c_empname"]
};
jsonData = (new JavaScriptSerializer()).Serialize(input);
}
con.Close();
}
}
return jsonData;
}
【问题讨论】:
-
这是一段微不足道的代码 - 您是否尝试设置断点来检查响应并查看它是否与您期望的值匹配?或者也许完成了
alert(response);?您是否确保标签的 ID 与您期望它在客户端的 ID 相匹配?您是否已执行 `$("#lblName").text("Hello, world!");` 来验证您是否可以正确地将数据添加到文本框中?这些是您应该采取的基本调试步骤。 -
是的,我试过设置断点。如果我将警报(user.Name)放在成功函数中,那么它会显示正确的数据,但不会显示在标签内。
-
现在已经解决了。
标签: javascript c# asp.net ajax