C# &引用;“未定义错误”;在jqueryajax中

C# &引用;“未定义错误”;在jqueryajax中,c#,jquery,ajax,C#,Jquery,Ajax,请找人帮助清除此错误 我想在不刷新页面的情况下,在每次单击动态框时显示一个模式弹出窗口(带有数据库中的内部详细信息)。我使用了jquery ajax,但无法从数据库中获取值。它在弹出窗口中的字段上显示未定义的错误。请参阅代码 <script type="text/javascript"> $.fx.speeds._default = 1000; $(document).ready(function () { $("div[id*='wind

请找人帮助清除此错误

我想在不刷新页面的情况下,在每次单击动态框时显示一个模式弹出窗口(带有数据库中的内部详细信息)。我使用了jquery ajax,但无法从数据库中获取值。它在弹出窗口中的字段上显示未定义的错误。请参阅代码

<script type="text/javascript">
      $.fx.speeds._default = 1000;
      $(document).ready(function () {
          $("div[id*='window']").live('click', function (e) {
              $.ajax({
                  url: 'Default2.aspx/get_details',
                  type: 'Get',
                  // dataType: 'json',
                  data: { id: $(this).attr('id').replace(/window/g, '') },
                  success: function (data) {
                    alert(data);
                      $('<div></div>').appendTo('body').html('<div>' + data.comp_name + '</div><div>' + data.comp_status + '</div>').dialog({
                          modal: true, title: 'owner details', zIndex: 10000, autoOpen: true,
                          width: 400, height: 200, modal: false, resizable: false, closeOnEscape: false,
                          show: "slide", hide: "explode",

                          close: function (event, ui) {
                              $(this).remove();
                          }
                      });
                  }
              });
          });
      });


  </script>

$.fx.speeds.\u默认值=1000;
$(文档).ready(函数(){
$(“div[id*='window'])。live('click',函数(e){
$.ajax({
url:“WebService.asmx/GetCompanyDetails”,类型:“Post”,数据类型:“json”,
数据:JSON.stringify({id:$(this.attr('id')).replace(/window/g,,)}),
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(msg){
var data=$.parseJSON(JSON.stringify(eval(“+msg.d+”)));
$(“”).appendTo('body').html(“”+data.Name+“”+data.City+“”)。对话框({
模态:true,标题:“测试消息”,zIndex:10000,自动打开:true,
宽度:460,高度:300,模态:真,可调整大小:假,closeOnEscape:假,
显示:“幻灯片”,隐藏:“爆炸”,
按钮:{
Ok:函数(){
$(此).dialog(“关闭”);
}
},
关闭:功能(事件、用户界面){
$(this.remove();
}
});
},
错误:函数(msg){
}
});
});
});
测试1




测试2 使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.UI; 使用System.Web.UI.WebControl; 使用实体; 名称空间公司显示 { 公共部分类CompayJqueryUI:System.Web.UI.Page { 受保护的无效页面加载(对象发送方、事件参数e) { } 上市公司GetCompanyDetails(内部id) { if(true)//授权 { //SqlConnection cn=newsqlconnection(@“数据源=KURIOS_WS4;初始目录=Dreams;用户ID=sa;密码=SageCRMv71”); //string qry=“从comp_companyId=@comp_companyId的公司中选择comp_companyId、comp_name、comp_status”; //SqlCommand cmd=新的SqlCommand(qry,cn); //SqlDataReader=cmd.ExecuteReader(); 公司实体=新公司(); 实体Id=2; entity.Name=“Test”; 实体。城市=“班加罗尔”; //或 //if(reader.Read()) //{ //entity.Id=int.Parse(reader[“comp_companyId”].ToString()); //entity.Name=reader[“comp_Name”].ToString(); //entity.City=reader[“comp_status”].ToString(); //} 返回实体; } 其他的 { 返回新公司(); } } } } 使用制度; 使用System.Collections.Generic; 使用System.Web; 使用System.Web.Services; 使用System.Web.Script.Services; 使用System.Web.Script.Serialization; 使用CompanyDisplay; 名称空间公司显示 { [WebService(命名空间=”http://tempuri.org/")] [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [脚本服务] 公共类WebService:System.Web.Services.WebService { [网络方法] [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 公共字符串GetCompanyDetails(int id) { 返回新的JavaScriptSerializer().Serialize(新的CompayJqueryUI().GetCompanyDetails(id)); } } }
我看到了两件要签出的东西:

  • 使用标记服务器端方法
  • 实际数据在
    data.d
    中返回,而不是
    data
    中返回

  • 你能提供更多关于错误的信息吗?它发生在哪里,在哪条线上?另外,您可以发布服务器的响应吗?警报(数据)是否表示未定义?如果您希望服务器响应,您应该在ajax请求中使用数据类型。在弹出窗口中没有,而不是字段值。我在上面的代码中没有定义字段值。如果我保留断点,它不会触发get details方法,因此我无法获取数据库值。我将尝试此代码发送给您或朋友的电子邮件id。我将向您发送zip文件。命名空间应与.aspx和.asmx相同。文件名和方法名应与jqueryk中的WebService.asmx/GetCompanyDetails匹配。。我向你发送了附件,你可以删除电子邮件id.public字符串名称{get;set;}->data.Name。如果您使用data.name,它将显示为未定义。因为它是区分大小写的。
    public class Company
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Status { get; set; }
        }
    
    
      public Company get_details(int id)
      {
    
          DataSet dset = new DataSet();
          SqlConnection cn = new SqlConnection(@"Data Source=KUR;Initial Catalog=Drea;User ID=sa;Password=Sage");
          string qry = "Select comp_companyId,comp_name,comp_status from Company where comp_companyId=" +id+" ";
          SqlDataAdapter sda = new SqlDataAdapter(qry, cn);
          sda.Fill(dset);
    
          Company entity = new Company();
    
          SqlCommand cmd = new SqlCommand(qry, cn);
    
          SqlDataReader reader = cmd.ExecuteReader();
    
          if (reader.Read())
          {
              entity.Id = int.Parse(reader["comp_companyId"].ToString());
              entity.Name = reader["comp_name"].ToString();
              entity.Status = reader["comp_status"].ToString();
          }
    
          return entity;
      }
    
    public string Name { get; set; } -> data.Name ...
    if u use data.name it will show as undefined. because it is case sensitive   
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="Scripts/css/ui-lightness/jquery-ui-1.8.20.custom.css" rel="stylesheet"
            type="text/css" />
        <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
        <script src="Scripts/jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $.fx.speeds._default = 1000;
            $(document).ready(function () {
                $("div[id*='window']").live('click', function (e) {
                    $.ajax({
                        url: "WebService.asmx/GetCompanyDetails", type: "Post", dataType: "json",
                        data: JSON.stringify({ id: $(this).attr('id').replace(/window/g, '') }),
                        contentType: "application/json; charset=utf-8",
                        success: function (msg) {
                            var data = $.parseJSON(JSON.stringify(eval("(" + msg.d + ")")));
    
                            $('<div></div>').appendTo('body').html('<div>' + data.Name + '</div><div>' + data.City + '</div>').dialog({
                                modal: true, title: 'Test message', zIndex: 10000, autoOpen: true,
                                width: 460, height: 300, modal: true, resizable: false, closeOnEscape: false,
                                show: "slide", hide: "explode",
                                buttons: {
                                    Ok: function () {
                                        $(this).dialog("close");
                                    }
                                },
                                close: function (event, ui) {
                                    $(this).remove();
                                }
                            });
                        },
                        error: function (msg) {
    
                        }
                    });
                });
            });
        </script>
    </head>
    <body>
        <div id="window1">
            Test1
        </div>
        <br />
        <br />
        <br />
        <br />
        <div id="window2">
            Test2
        </div>
    </body>
    </html>
    
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Entity;
    
    namespace CompanyDisplay
    {
        public partial class CompayJqueryUI : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            public Company GetCompanyDetails(int id)
            {
                if (true)   //authorize 
                {
                    //SqlConnection cn = new SqlConnection(@"Data Source=KURIOS_WS4;Initial Catalog=Dreams;User ID=sa;Password=SageCRMv71");
                    //string qry = "Select comp_companyId,comp_name,comp_status from Company where comp_companyId=@comp_companyId ";
                    //SqlCommand cmd = new SqlCommand(qry, cn);
                    //SqlDataReader reader = cmd.ExecuteReader();
    
                    Company entity = new Company();
                    entity.Id = 2;
                    entity.Name = "Test";
                    entity.City = "Bangalore";
    
                    //Or
    
                    //if (reader.Read())
                    //{
                    //    entity.Id = int.Parse(reader["comp_companyId"].ToString());
                    //    entity.Name = reader["comp_name"].ToString();
                    //    entity.City = reader["comp_status"].ToString();
                    //}
    
                    return entity;
                }
                else
                {
                    return new Company();
                }
            }
        }
    }
    
    
    
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Services;
    using System.Web.Script.Services;
    using System.Web.Script.Serialization;
    using CompanyDisplay;
    
    namespace CompanyDisplay
    {
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        [ScriptService]
        public class WebService : System.Web.Services.WebService
        {
            [WebMethod]
            [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
            public string GetCompanyDetails(int id)
            {
                return new JavaScriptSerializer().Serialize(new CompayJqueryUI().GetCompanyDetails(id));
            }
        }
    }