Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET4.5-未从JQuery调用Web方法_Javascript_C#_Jquery_Ajax - Fatal编程技术网

Javascript ASP.NET4.5-未从JQuery调用Web方法

Javascript ASP.NET4.5-未从JQuery调用Web方法,javascript,c#,jquery,ajax,Javascript,C#,Jquery,Ajax,我已经在C#代码中设置了断点,并且没有调用web方法。我应该看到从数据库返回的四行 我没有收到任何错误-我在控制台中看到的唯一一件事是长度上的错误(在javascript for循环ie I

我已经在C#代码中设置了断点,并且没有调用web方法。我应该看到从数据库返回的四行


我没有收到任何错误-我在控制台中看到的唯一一件事是长度上的错误(在javascript for循环ie I 相关代码

TestApp.aspx.cs

    namespace WebApplication1
{
    public class User
    {
        public int?   TestID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public string Phone { get; set; }
    }

    public partial class TestApp : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        [WebMethod]
        public static User[] Get()
        {
            try
            {
                List<User> details = FetchData("sp_LoadData", null);
                return details.ToArray();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
$(document).ready(function () {
    BindGrid();

function BindGrid() {
    var t = $('#example').DataTable();
    t.rows().remove().draw();

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "TestApp.aspx/Get",
        data: "{}",
        dataType: "json",

        success: function (data) {
            for (var i = 0; i < data.d.length; i++) {
                //debugger;
                t.row.add([
                            '<a class="table-edit" onclick="showRecord(' + data.d[i].TestID + ');">' + data.d[i].FirstName + '</a>',
                            data.d[i].LastName,
                            data.d[i].Email,
                            data.d[i].Phone,
                            '<button type="button" onclick="deleteRecord(' + data.d[i].TestID + ');">Delete</button>'
                ]).draw(false);
            }
        },
        error: function (result) {
            debugger;
            alert("Error");
        }
    });
};
命名空间WebApplication1
{
公共类用户
{
公共int?TestID{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串电子邮件{get;set;}
公用字符串电话{get;set;}
}
公共部分类TestApp:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
[网络方法]
公共静态用户[]Get()
{
尝试
{
列表详细信息=FetchData(“sp_LoadData”,null);
返回详细信息。ToArray();
}
捕获(例外情况除外)
{
掷骰子;
}
}
TestApp.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestApp.aspx.cs" Inherits="WebApplication1.TestApp" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
    <script src="TestApp.js"></script>
</head>
<body>
    <form id="form1">

                        <table id="example" class="display" cellspacing="1" width="100%" border="1">
                            <thead style="border: solid thin;">
                                <tr>
                                    <th>First name</th>
                                    <th>Last name</th>
                                    <th>Email</th>
                                    <th>Phone</th>
                                    <th>Delete</th>
                                </tr>
                            </thead>
                        </table>

名字
姓
电子邮件
电话
删除
TestApp.js

    namespace WebApplication1
{
    public class User
    {
        public int?   TestID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public string Phone { get; set; }
    }

    public partial class TestApp : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        [WebMethod]
        public static User[] Get()
        {
            try
            {
                List<User> details = FetchData("sp_LoadData", null);
                return details.ToArray();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
$(document).ready(function () {
    BindGrid();

function BindGrid() {
    var t = $('#example').DataTable();
    t.rows().remove().draw();

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "TestApp.aspx/Get",
        data: "{}",
        dataType: "json",

        success: function (data) {
            for (var i = 0; i < data.d.length; i++) {
                //debugger;
                t.row.add([
                            '<a class="table-edit" onclick="showRecord(' + data.d[i].TestID + ');">' + data.d[i].FirstName + '</a>',
                            data.d[i].LastName,
                            data.d[i].Email,
                            data.d[i].Phone,
                            '<button type="button" onclick="deleteRecord(' + data.d[i].TestID + ');">Delete</button>'
                ]).draw(false);
            }
        },
        error: function (result) {
            debugger;
            alert("Error");
        }
    });
};
$(文档).ready(函数(){
BindGrid();
函数BindGrid(){
var t=$(“#示例”).DataTable();
t、 行().remove().draw();
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
url:“TestApp.aspx/Get”,
数据:“{}”,
数据类型:“json”,
成功:功能(数据){
对于(变量i=0;i

“我没有收到任何错误-我在控制台中看到的唯一一件事是长度上的错误”,因此您确实收到了一个错误:)

检查长度时,假设数据中始终存在定义为“d”的数组。应添加检查以验证您的假设:

if (data && data.d && data.d.length) {
  for (var i = 0; i < data.d.length; i++) {
     ...
if(data&&data.d&&data.d.length){
对于(变量i=0;i
使用


下面是[WebMethod]

我怀疑,因为您传递的是一个空对象。NET正在寻找一个定义为Get(object)not Get()的函数。请尝试从ajax调用中删除以下内容:

   data: "{}",
   dataType: "json",

因此,您不会在控制台中收到任何错误-网络选项卡如何?您是否看到对Web服务的调用?您可能希望抛出
Console.log(“数据:”+Data)
语句作为
success
函数的第一行。你是对的,Rob。我想我说的是没有得到一个关于为什么没有调用Web方法的错误(我文章的标题)。你实际上不需要将它用于PageMethod…只有在你使用ASMX服务的情况下。