WebMethod永远不会在asp.net中调用

时间:2015-04-08 21:06:10

标签: c# jquery asp.net

我正在使用jQuery来调用方法背后的C#代码。这是我的ascx文件代码:

ASPX

<div class="dnnFormItem">
<asp:LinkButton id="cmdLogin" resourcekey="cmdLogin" cssclass="dnnPrimaryAction" text="Login" runat="server" />

JQuery的

<script type ="text/javascript">
$(document).ready(function () {
    $('#<%=cmdLogin.ClientID %>').click(function () {
        $.ajax({
            type: "post",
            url: "Login.ascx/ServerSideMethod",
            data: "{sendData: '" + ID + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) { 
                alert("successful!" + result.d); 
            }
        });
    });
});
</script>

这是我的C#代码:

[WebMethod]
public static string ServerSideMethod()
{
    return String.Format("Hello");
}

请帮我解决这个问题。我永远不会调用C#中的WebMethod函数。

4 个答案:

答案 0 :(得分:0)

您的ServerSideMethod()需要一个参数sendData。你有没有尝试使用aspx页面或asmx而不是ascx

答案 1 :(得分:0)

您正在传递参数,但Web方法不接受任何参数,因此可能会抛出异常。使用错误功能可以确定。这可以与您的成功回调类似。有关它的信息可以在Jquery文档中找到:http://api.jquery.com/jquery.ajax/

答案 2 :(得分:0)

代表data: "{sendData: '" + ID + "'}",

检查ID是否真的存在???如果你想真正将参数传递给ServerSideMethod,请不要删除此行,以防你没有将此参数传递给ServerSideMethod

并更改WebMethod,传递参数sendData

 [WebMethod]
    public static string ServerSideMethod(string sendData)
    {
        return String.Format("Hello");
    }

答案 3 :(得分:0)

url: "Login.ascx/ServerSideMethod"

您必须移动您的服务&#34;到asmx(或aspxashx)文件 - WebMethods不能出现在UserControls中。

我已经看过一些&#34;变通办法&#34;但恕我直言,他们本身并不是真正的解决方法......或者我应该说&#34; hacky&#34;并且最终会比仅仅asmx

更复杂

... H个