需要帮助 - 从 WebMethod (ASP.NET) C# 调用时,MasterPage 始终返回 null

Posted

技术标签:

【中文标题】需要帮助 - 从 WebMethod (ASP.NET) C# 调用时,MasterPage 始终返回 null【英文标题】:Need help - MasterPage always return null when call from WebMethod (ASP.NET) C# 【发布时间】:2020-10-24 20:15:42 【问题描述】:

我正在构建一个购物车,一切正常。现在,我正在尝试使用 jQuery 插入和显示数据库中的数据。我使用jQuery成功插入数据,但无法更新MasterPage内的面板,因为master总是返回null。

有人想解决我的问题吗?

<script>
    $(document).ready(function () 
        $("[id*=lb1KgButton]").click(function () 


            $.ajax(
                data: JSON.stringify(

                    customerID: _customerID
                ),
                dataType: "json",
                type: "POST",
                url: '<%= ResolveUrl("~/AddToCart.aspx/AddToCartFrom1To4Kg") %>',
                contentType: "application/json; charset=utf-8",
                success: function (result) 
                    showSuccess('', 'Added to cart successfully!');
                
            );
        );
    );
</script>

这是 AddToCart.aspx 中的代码

[WebMethod]
    public static string AddToCartFrom1To4Kg(string customerID)
    
        string result = "";
        AddToCart atc = new AddToCart();

        atc.UpdateShoppingCart(); 

public void UpdateShoppingCart()
    
        var master = Master as Home;
        if (master != null)
        
            UpdatePanel upMasterPage = (UpdatePanel)master.FindControl("UpdatePanel1");
            master.CheckAddToCart();
            upMasterPage.Update();
        
    

【问题讨论】:

【参考方案1】:

您不能从静态方法更新页面。您必须返回到 javascript 方法并从那里更新页面。根据需要将数据/信息返回给 ajax 调用。

【讨论】:

以上是关于需要帮助 - 从 WebMethod (ASP.NET) C# 调用时,MasterPage 始终返回 null的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 WebMethod 返回到 ajax

从另一个 WebMethod 的成功函数调用 ASP.net WebMethod

如何使 WebMethod 参数成为必需

如何从 vb.net 中的 aspx.vb 页面调用 webmethod

是否可以在 JSON 中更改页面 webmethod 响应,删除 .d 节点?

用juery的ajax方法调用aspx.cs页面中的webmethod方法示例