Skip to main content
 首页 » 编程设计

c#之无法在 asp.net c# 中使用 ajax jquery 获取数据表单函数

2024年02月25日34飞鱼

我正在尝试在 asp.net 中使用 $.ajax() 方法来填充 html 标记,但我没有从成功参数中获取任何数据 我正在从 C# 代码调用 getData 函数,我试图返回一个字符串,但它不起作用我也尝试使用 Response.write() 但同样的问题 当我提醒返回值时,它会显示 aspx 页面代码 如下图

这是我的代码 默认.apsx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"  
 %> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
    <script> 
 
        $(document).ready(function () { 
 
 
 
            $("#firstDrop").on("change", function () { 
                $.ajax({ 
                    url: "Default.aspx/getData", 
                    type: "POST", 
                    data: { id: $("#firstDrop").val() }, 
                    success: function (data) { 
                        alert(data); 
                        $("#secondDrop").html(data); 
                    } 
                }); 
            }); 
 
        }); 
 
 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
 
    <select runat="server" id="firstDrop"> 
 
        <option value="0">first select</option><option value="1">second select</option><option value="3">third select</option> 
 
    </select> 
        <select id="secondDrop"></select> 
    </div> 
    </form> 
</body> 
</html> 

Default.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
 
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
 
    } 
 
 
    public  string getData() 
    { 
        return"<option>ABC</option><option>CDE</option>"; 
    } 
} 

请您参考如下方法:

在 asp.net 中创建 web 方法时的基本规则。

  • 你的方法应该是静态的。
  • 您需要使用 System.Web.Services.WebMethod 修饰您的函数。

C# Code Behind

[System.Web.Services.WebMethod] 
public static string GetCurrentTime(string name) 
{ 
    return "Hello " + name + Environment.NewLine + "The Current Time is: " 
        + DateTime.Now.ToString(); 
} 

Javascript (Aspx)

在这里,在您的情况下,将 getdata 函数和 webmethod 也设为静态。通过 ajax 调用 web 方法时,使用 data.d 读取响应。

[System.Web.Services.WebMethod] 
public static string getData(int id) 
{ 
    return "<option>ABC</option><option>CDE</option>"; 
} 

$("#firstDrop").on("change", function() { 
    $.ajax({ 
        url: "Default.aspx/getData", 
        type: "POST", 
        dataType: "json", 
        data: { 
            id: $("#firstDrop").val() 
        }, 
        success: function(data) { 
            alert(data.d); 
            $("#secondDrop").html(data.d); 
        } 
    }); 
}); 

引用站点:

https://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

类似主题“在 webform 中调用 webmethod”