我正在使用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函数。
答案 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
(或aspx
,ashx
)文件 - WebMethods不能出现在UserControls中。
我已经看过一些&#34;变通办法&#34;但恕我直言,他们本身并不是真正的解决方法......或者我应该说&#34; hacky&#34;并且最终会比仅仅asmx
... H个