Jquery Ajax调用不调用.CS文件中的函数



我总是在"error"中得到警报。当我调试时,我得到的类型,url是未定义的。有人能帮我为什么没有调用那个方法吗??

$(document).ready(function () {
    $("#btnajaxcall").click(function () {
        $.ajax({
            type: "POST",
            url: "Default.aspx/jQueryAjaxCalledMethod",
            contentType: "application/json; charset=utf-8",
            data: "{}",
            dataType: 'json',
            success: function () { alert('success') },
            error: function () { debugger; alert('failure'); return false; }
        });
    });
});   

[WebMethod]
public void jQueryAjaxCalledMethod()
{  
   //SOME CODE HERE       
}

如果我是正确的,你应该使用静态方法来实现这些目的,所以你的代码后面的函数应该看起来像这个

[WebMethod]
public static void jQueryAjaxCalledMethod()
{  
   //SOME CODE HERE       
}

如果你仍然有一些错误,看看这个家伙的博客Encosia,也许你会发现有一个解决方案

jqueryAjax方法将使用纯html协议以json格式发布数据。ASP.NET将期望打开一个SOAP请求以传递给Web方法。因此出现了错误。您应该使用MVC操作,正如其中一条注释中所建议的那样。编辑:在进一步的调查中,ASP.Net有一个允许调用web方法的属性:[System.Web.Script.Services.ScriptService]。在类上使用此属性,它可能会解决您的问题。

嗨,我刚刚使用了谷歌托管的jquery文件。

结果很好。

以前我使用的是jquery 1.7.1版本,我已经下载并存储在本地。我在论坛上也看到了很多问题,认为这种特殊的ajax调用在.NET4中不太正常。如果我错了,我不确定并原谅我,但我确实有一种感觉,在这种情况下,1.7.1不能正确地使用ASP.NET 4。

p.S->我在脚本标记中使用了这个-->src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"

最新更新