【发布时间】:2016-10-06 19:48:26
【问题描述】:
我通过 jQuery ajax 调用了许多用 [WebMethod] 修饰的方法。
这些需要在外部库中设置数据库连接,每个方法都相同。
我的原始代码如下所示:
public partial class Server : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// code to set up DB connections
ExternalLibrary.SetupDB();
}
[WebMethod]
public static string AjaxAccessibleMethod()
{
try
{
// get some data from the database via the external library
ExternalLibrary.CallDatabase();
}
catch(Exception ex)
{
// handle errors
}
}
}
这可行,但随后开始抛出异常,声称 ExternalLibrary 的数据库尚未初始化。
在我的代码中放置断点我发现调用我的 AjaxAccessibleMethod 时没有调用 Page_Load 事件,我还尝试将 DB 设置内容移动到 Page_Init 事件中,但同样没有调用。
任何人都可以向我解释使用 WebMethods 时的 aspx 页面生命周期吗?这最初有效的事实似乎意味着 Page_Load 被调用,但它不再是。
【问题讨论】:
标签: c# asp.net ajax page-lifecycle