为什么我的脚本无法正常工作?

时间:2014-02-06 13:56:09

标签: javascript asp.net asp.net-mvc-4 view controller

当我要运行此代码时,我测试的代码运行良好,但我的预期没有显示。它只在每个文本框中显示[object XMLDocument]。我从数据库中搜索数据的控制器是......

public string Search(string id=null)
        {
            string[] ci = new string[9];
            //return "Artistry";

            string cn = null;
            cn = Request.QueryString["id"];
            if (cn != null)
            {
                ClientInfo c = db.SingleOrDefault<ClientInfo>("where CName='" + cn + "'");
                if (c != null)
                {
                    ci[0] = c.CId.ToString();
                    ci[1] = c.CName;
                    ci[2] = c.CCName;
                    ci[3] = c.Address;
                    ci[4] = c.Email;
                    ci[5] = c.Fax;
                    ci[6] = c.Country;
                    ci[7] = c.PhoneNo.ToString();
                    ci[8] = c.PostalCode.ToString();
                    return ci[2];
                }
                else
                    return null;
            }
            else
                return null;
             //*/
        }

我的JavaScript代码用于在文本框中显示数据...

<script type="text/javascript">
    $(document).ready(function () {
        $('#CName').blur(function () {
            var v = $('#CName').val();
            var url = "/Clients/Search/" + v;
          //  alert("Test : " + url);
            $.get(url, function (data, status) {
                $("#CId").val(data);
                $("#CCName").val(data);
                $("#Address").val(data);
                $("#Email").val(data);
                $("#Fax").val(data);
                $("#Country").val(data);
                $("#PhoneNo").val(data);
                $("#PostalCode").val(data);
                //alert("Test : " + data + " Status :" + status);
            });
        });
    });

</script>

我的数据库sql查询..

SELECT TOP 1000 [CId]
      ,[CName]
      ,[CCName]
      ,[PhoneNo]
      ,[Fax]
      ,[Email]
      ,[Address]
      ,[PostalCode]
      ,[Country]
  FROM [test].[dbo].[ClientInfo] 

2 个答案:

答案 0 :(得分:2)

您需要通过索引从'data'对象获取数据。 添加数据对象后面的值的索引应该有效:

<script type="text/javascript">
    $(document).ready(function () {
        $('#CName').blur(function () {
            var v = $('#CName').val();
            var url = "/Clients/Search/" + v;
          //  alert("Test : " + url);
            $.get(url, function (data, status) {
                $("#CId").val(data[0]);
                $("#CCName").val(data[2]);
                $("#Address").val(data[3]);
                $("#Email").val(data[4]);
                $("#Fax").val(data[5]);
                $("#Country").val(data[6]);
                $("#PhoneNo").val(data[7]);
                $("#PostalCode").val(data[8]);
                //alert("Test : " + data + " Status :" + status);
            });
        });
    });

</script>

答案 1 :(得分:1)

因为data是一个对象,并且您将data.toString()设置为输入的值。它没有神奇地映射。您需要从正在返回的对象中提取数据。