use*_*521 5 asp.net ajax jquery
很长一段时间WinForm程序员在这里,但新的Web编程场景.我有Visual Studio 2010,我创建了一个新的WebSite项目.我似乎无法得到ajax来调用我创建的web方法.当我点击页面上的按钮时,根本没有任何事情发生.
在创建WebSite项目时,看起来jquery 1.4.1会自动添加到Scripts文件夹中.
在Default.aspx中,我添加了2个脚本标记:
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="Scripts/Process.js">
Run Code Online (Sandbox Code Playgroud)
我在页面上放了一个按钮,在Process.js中定义了onclick函数:
<input id="btnTest" type="button" value="Test" onclick="btnTest_onclick()" />
Run Code Online (Sandbox Code Playgroud)
在Process.js中,我有以下代码:
function btnTest_onclick() {
    var strData = JSON.stringify({
        userid: 5
    });
    alert(strData);
    $.ajax({
        url: 'Default.aspx/GetData',
        type: "POST",
        data: strData,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: Success,
        failure: Failure,
        async: true
    });
}
function Success(data) {
    alert("success");
}
function Failure(data) {
    alert("failure");
}
Run Code Online (Sandbox Code Playgroud)
在Default.aspx.cs中:
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    [WebMethod()]
    public static string GetData(int id)
    {
        return "hello, my id is " + id;
    }
}
Run Code Online (Sandbox Code Playgroud)
    我不知道是否需要使用JQuery进行Ajax请求,但是您可以使用ASP.NET ajax的功能更轻松地执行ajax请求来寻呼方法.
首先,我想要注意,要使用PageMethods,您需要将脚本管理器控件添加到页面并指定EnablePageMethods ="True".
当您这样做时,ScriptManager将呈现PageMethods客户端定义,它代表页面上已定义页面方法的代理,您可以使用Ajax请求轻松调用此方法.
因此,您可以尝试以下代码:
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="true" EnablePageMethods="True" />
<input id="btnTest" type="button" value="Test" onclick="btnTest_onclick()" />
<script type="text/javascript">
    function btnTest_onclick() {
        PageMethods.GetData(5, Success, Failure);
    }
    function Success(data) {
        alert("success");
        alert(data);
    }
    function Failure(data) {
        alert("failure");
    }
</script>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,此代码具有较少的代码行并且可以正常工作.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           6992 次  |  
        
|   最近记录:  |