目前我有一个按钮,在客户端点击时,运行一个jquery函数,用于更改(隐藏到用户)标签上的文本,然后单击第二个(也隐藏到用户)按钮。然后,第二个按钮运行一个ASP.NET函数,其最后一个命令是重定向到第二个页面。我需要这样做的原因是因为我将标签的值(根据数据库动态分配)存储到会话变量中,然后重定向到第二页。
此方法适用于Chrome和Firefox。尽管如此,它似乎并没有在IE中重定向。但是,它确实存储了会话变量(即处理隐藏按钮的单击事件的子例程被调用)。
有谁知道为什么会这样?
非常感谢你的帮助!我真诚地感谢任何意见。
编辑:我自己尝试点击隐藏按钮,它工作正常,所以肯定是第一个按钮的回发干扰了从第二个按钮调用的子程序。
答案 0 :(得分:0)
为什么要从ASP.net函数重定向?你使用jQuery AJAX来执行该功能吗?我认为你最好的选择是调用一个jQuery Ajax函数,它将你的值存储在session中,然后(再次在你的javascript代码中)进行重定向:
document.location ='your_new_url.aspx'
希望有所帮助。
试试这个:
在您的javascript代码中:
$.ajax({
type: "POST",
url: "yourPageName.aspx/SetSession",
data: "{value: '" + the_session_value_you_want_to_store + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
if(response.d.length==0) {
//all was OK, redirect
document.location = 'your_new_url.aspx';
} else {
//mmmm some error
alert(response.d);
}
},
error: function(msg) {
alert(msg);
}
});
在您的VB.net代码中:
<WebMethod()> _
Public Shared Function SetSession(ByVal value As String) As String
Dim output As String = String.Empty
Try
HttpContext.Current.Session("your_session_variable_name") = value
Catch ex As Exception
output = ex.ToString()
End Try
Return output
End Function
如果在编写服务器代码时看不到该属性,请将此导入添加到您的页面: Imports System.Web.Services
希望有所帮助。