页面网址在重定向时没有变化

时间:2013-01-03 11:26:27

标签: jquery asp.net jquery-mobile

我的主页中有一个jquery popup登录,其中包含contentPage url

  

Category.aspx

在代码背后我写了

public void Ligin_Click( object sender,EventArgs e)
{
    string Ret = objLogin.LoginValidate(
                               txtSignInEmail.Text.Trim(), 
                               txtSignInPass.Text.Trim());
     if (Ret == "1")
     {
         Response.Redirect("~/Mobile/Home.aspx?");
     }
}

但是Response.Redirect没有用,那我写了

Response.Redirect("~/Mobile/Home.aspx?",false);

它工作正常。但页面网址没有改变它仍然是前一页网址

  

Category.aspx

Home.aspx上的

和链接按钮不起作用,抛出异常。 无效的回发或回调参数 使用

启用事件验证
<pages enableEventValidation="true"/> 

在配置或

<%@Page EnableEventValidation="true" %> in a page.  

出于安全考虑,此功能会验证回发或回调的参数 事件源自最初呈现它们的服务器控件 如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation      方法,以便注册回发或回调数据进行验证。


当我正在键入url'home.aspx'manualy时,它工作正常。

3 个答案:

答案 0 :(得分:8)

jQuery Mobile和asp.net网络表单从根本上不能协同工作。回发模型和jQuery Mobile的ajax表单加载和导航是不兼容的。转到MVC或关闭ajax。

确保在jQuery Mobile初始化之前调用此代码。 (将其包含在引用jQuery Mobile的<script>标记之前。)

<script src="jquery.js"></script>
<script>
    $(document).bind("mobileinit", function(){
      $.mobile.ajaxEnabled = false;
    });
</script>
<script src="jquery-mobile.js"></script>

http://jquerymobile.com/demos/1.2.0/docs/api/globalconfig.html

答案 1 :(得分:2)

如果您坚持尝试与jQuery Mobile和ASP.NET WebForms结合使用,可以使用data-url data-role="page"上的div属性来解决服务器问题 - 重定向与浏览器URL混淆。

在.aspx中使用与以下内容等效的内容:

<div data-role="page" data-url="<%= Request.Url.PathAndQuery %>">
...
</div>

有关详细信息,请阅读this jQuery Mobile doc page上标题为“重定向和链接到目录”的部分。

答案 2 :(得分:0)

如果要禁用ajax,可以在不需要它的元素上执行此操作:data-ajax =“false”。您可以将其放在表单上以处理响应重定向。 (但是,这不会完全禁用ajax - 对于链接作为示例。)

您可以使用window.onload或任何您喜欢的jquery init添加一个简单的脚本部分,并使用$('form')为该页面禁用表单ajax。attr(“data-ajax”,“false”); < / p>