ASP.NET按钮不在IE上重定向

时间:2011-02-17 13:35:57

标签: jquery asp.net vb.net internet-explorer button

目前我有一个按钮,在客户端点击时,运行一个jquery函数,用于更改(隐藏到用户)标签上的文本,然后单击第二个(也隐藏到用户)按钮。然后,第二个按钮运行一个ASP.NET函数,其最后一个命令是重定向到第二个页面。我需要这样做的原因是因为我将标签的值(根据数据库动态分配)存储到会话变量中,然后重定向到第二页。

此方法适用于Chrome和Firefox。尽管如此,它似乎并没有在IE中重定向。但是,它确实存储了会话变量(即处理隐藏按钮的单击事件的子例程被调用)。

有谁知道为什么会这样?

非常感谢你的帮助!我真诚地感谢任何意见。

编辑:我自己尝试点击隐藏按钮,它工作正常,所以肯定是第一个按钮的回发干扰了从第二个按钮调用的子程序。

1 个答案:

答案 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

希望有所帮助。