[英]How to call ascx function code behind using javascript? DotNetNuke
[英]How to call a function in a UserControl (code behind) using javascript
如何使用JavaScript在UserControl中調用函數(代碼位於-UserControl.ascx.cs之后)? 以下似乎無效。 僅當我將函數(AddLike)移動到嵌套UserControl的父頁面后面的代碼時,它才起作用。 如果要調用的函數在UserControl本身的代碼中,則該代碼不起作用
UserControl.ascx
$.ajax({
type: "POST",
url: "UserControl.ascx.cs/AddLike", //This doesn't seem to work
data: "{ IDphoto :" + IDphoto + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
})
UserControl.ascx.cs
[WebMethod]
public static string AddLike(int IDphoto)
{
//My code
}
parentPage.aspx
<uc:UserControl runat="server" />
您不能從用戶控件調用WebMethods
。 將此WebMethod
放在要在其中加載控件的頁面后面的代碼中。 像這樣改變它
$.ajax({
type: "POST",
url: "parentPage.aspx/AddLike",
data: "{ IDphoto :" + IDphoto + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
})
您不能在用戶控件后面的代碼中調用定義的WebMethod
。 因此,為避免重復代碼,您可以做的是在用戶控件后面的代碼中將您的方法定義為static
方法,如下所示:-
public static string AddLike(int IDphoto)
{
//My code
}
然后從您各自的aspx
頁面調用此方法,顯然您將從Javascript觸發該方法:-
[WebMethod]
public static string AddLikeMethod(int Id)
{
return UserControl.AddLike(Id);
}
最后,您可以像往常一樣調用此方法:
$.ajax({
type: "POST",
url: "Default.aspx/AddLikeMethod",
data: "{ IDphoto :" + IDphoto + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.