5

我的母版页中有一个 jquery 弹出登录名,其中包含 contentPage url

类别.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);

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

类别.aspx

Home.aspx 上的链接按钮不起作用,引发异常。无效的回发或回调参数。
使用启用事件验证

<pages enableEventValidation="true"/> 

在配置或

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

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


当我手动输入 url 'home.aspx' 时,它工作正常。

4

3 回答 3

8

jQuery Mobile 和 asp.net web 表单基本上不能一起工作。回发模型和 jQuery Mobile 的 ajax 表单加载和导航不兼容。移动到 MVC 或关闭 ajax。

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

<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

于 2013-01-03T13:43:28.253 回答
2

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

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

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

有关更多详细信息,请阅读此 jQuery Mobile 文档页面上标题为“重定向和链接到目录”的部分。

于 2013-07-16T02:24:33.593 回答
0

如果你想禁用 ajax,你可以在不需要它的元素上这样做:data-ajax="false"。您可以将其放在表单上以处理响应重定向。(但是,这不会完全禁用 ajax——以链接为例。)

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

于 2016-02-17T12:30:42.117 回答