我想在我的asp.net項目中使用頁面方法,但我不知道它爲什麼不工作。頁面方法不工作
基本上我有2頁:locations.aspx和details.aspx。
在locations.aspx中,當我點擊一個圖像時,運行一個調用頁面方法的JS函數。然後在該頁面方法中,我存儲了一個會話值,我在Details.aspx頁面中使用該值。由於某種原因頁面方法失敗,我得到一個警報(我已經在onFailed()方法中設置了一個警報)。請告訴我是否有任何問題或者我應該採取任何程序。
我已經測試:
- onclick事件正在發生。
- 如果我手動爲session變量賦值,那麼它在Details.aspx頁面中工作。
Location.aspx
<form id="form1" runat="server">
<img class="..." src="...." usemap="#panchagarh-map" />
<map name="panchagarh-map">
<area onclick="javascript:passLocationString('Panchagarh')" href="Details.aspx" class="...." coords=" .... " shape="poly"
</map>
<script language="javascript" type="text/javascript">
function passLocationString(locationString) {
PageMethods.setLocationString(locationString, onSucceeded, onFailed);
}
function onSucceeded(result, userContext, methodName) {
}
function onFailed(error, userContext, methodName) {
alert("An error occurred")
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
</form>
Location.aspx.cs
public partial class Locations : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod(EnableSession = true)]
public static void setLocationString(string temp)
{
HttpContext.Current.Session["locationString"] = temp;
}
}
Details.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
HtmlGenericControl parentDiv = new HtmlGenericControl("DIV");
parentDiv.ID = "test";
parentDiv.InnerHtml = (string)Session["locationString"];
parentDiv.Visible = true;
Panel.Controls.Add(parentDiv);
}
爲什麼不:'alert(「發生錯誤:」+ error);'? – Igor
我做到了,它說「發生了一個錯誤[對象對象]」..我不明白它.. –