1

我有一个用于显示成功/警告/错误消息的用户控件。对于所有这些类型的消息,我们有一个 UserControl "Message.ascx" 目前用于其他没有 Jquery 的 aspx 页面

因为我们正在尝试维护标准消息警报。现在我第一次在我的 aspx 页面中使用 Jquery 和 JSON 调用。我想从我的 jquery 中显示这些成功消息。

一般来说,aspx 代码隐藏我使用用户控件作为

//register User Control
<UM1:UM runat="server" ID="Message" /> 
 ....
 public void insert(){
 .. Some logic.., after success
 Message.ShowSuccess(" Inserted Successfully");
 }

但是在 Jquery 中,我如何调用这些在 ascx.cs 中的 ShowSuccess() 我的 ajax 调用

     $.ajax({
                 type: "POST",
                 contentType: "application/json; charset=utf-8",
                 url: "Voyage.aspx/Context_Update",
                 data: "{'ID':''1}",
                 dataType: "html",
                 success: function (html) {
                     try {                          
                        // Want to Show    Message.ShowSuccess(" Inserted Successfully");                     
                     } catch (ex) {
                         alert("ErrCode:1");
                     }

我没有任何想法,也没有找到任何结果..,请帮帮我

4

1 回答 1

2

您不能在 ASP .NET 中调用用户控件,因为它不是直接提供给外部世界的东西,而是服务器在页面生命周期中结合到您的页面中的东西。

如果你想在服务器上调用某些东西,你需要将[WebMethod]属性添加到服务器端方法,这允许你从 jQuery 调用。您可以[WebMethod]在您的页面上有一个然后调用您的用户控件中的一些代码,但不能直接访问您的用户控件。

所以,像这样:

我的页面.aspx

[WebMethod]
public static string GetMessageFromWebPage()
{
    return MyUserControl.GetMessageFromUserControl();
}

MyUserControl.ascx

public static string GetMessageFromUserControl()
{
    return "Hello World!"
}

jQuery

$.ajax({
  type: "POST",
  url: "MyPage.aspx/GetMessageFromWebPage",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Do something with the page method's return.
    $("#Result").text(msg.d);
  }
});
于 2013-04-15T08:56:30.490 回答