使用Ajax调用C#集合到GridView

时间:2013-12-02 12:52:25

标签: asp.net entity-framework jquery

为什么我打电话给这个系列时会出错?我需要将这个集合绑定到我的Gridview控件.....

C#代码:

[WebMethod]
public static List<Customer> GetAllCustomers()
{

    using (masterEntities context = new masterEntities())
    {
        return context.Customer.ToList();
    }


protected void Page_Load(object sender, EventArgs e)
{

    DataTable table = new DataTable();
    table.Columns.Add("id");
    table.Columns.Add("Name");
table.Columns.Add("Age");
    table.Rows.Add();
    GridView1.DataSource = table;
    GridView1.DataBind();
}

Ajax代码:

  function GetCustomers() {

      $.ajax({
          type: "POST",
          url: "12.aspx/GetAllCustomers",
          data: '{}',
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: OnSuccess,


          error: function (data) {
              alert(data.d);
          }


      });

      function OnSuccess(data) {

          for (var i = 0; i < data.d.length; i++) {

              $("#GridView1").append("<tr><td>" + data.d[i].Id + "</td><td>" + data.d[i].Name    + "</td><td>" + data.d[i].Age + "</td></tr>");


          }

      }

这是我打电话给那个系列时得到的 http://s22.postimg.org/6qv6tr8g1/aaaaaaaaaaaaaaaaa.jpg

1 个答案:

答案 0 :(得分:0)

问题在于$.ajax错误处理程序:

error: function (data) {
              alert(data.d);
          }

这样编写的错误hanlder,很少提供有关失败请求发生的信息。编写错误处理程序的更好方法是:

error: function (jqXHR, textStatus, errorThrown ) {
                    console.log(jqXHR);
                    console.log(jqXHR.responseText);
                }

使用这种方式编写错误处理程序,您可以查看例如Chrome开发者工具的控制台窗口,查看jqXHR.responseText的值,其中包含错误的详细错误说明。

虽然在部署Web应用程序时要小心将console.log语句替换为更有意义的错误消息。

这是jQuery API文档的链接(查找错误处理程序描述):http://api.jquery.com/jQuery.ajax/

希望这有帮助!

此致 乌罗什