簡體   English   中英

如何使用javascript調用UserControl中的函數(后面的代碼)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM