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