我有一个UserControl来显示成功/警告/错误消息。对于所有这些类型的消息,我们有一个UserControl“Message.ascx”目前用于其他没有Jquery的aspx页面
我们正在尝试维护标准邮件警报。 现在我第一次在我的aspx页面中使用Jquery和JSON调用。我想从我的jquery中显示这些成功消息。
一般来说,aspx codebehind我已经将用户控件用作
//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");
}
我没有任何想法,也没有找到任何结果.., 请帮帮我
答案 0 :(得分:2)
您无法在ASP .NET中调用User-Control,因为它不是直接提供给外部世界的东西,而是在页面生命周期中服务器组合到您的页面中的东西。
如果要在服务器上调用某些内容,则需要将[WebMethod]
属性添加到服务器端方法,这允许您从jQuery调用。您可以在页面上使用[WebMethod]
,然后在用户控件中调用一些代码,但不能直接访问用户控件。
所以,像这样:
<强> MyPage.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);
}
});