我的主页中有一个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);
它工作正常。但页面网址没有改变它仍然是前一页网址
Home.aspx上的Category.aspx
和链接按钮不起作用,抛出异常。 无效的回发或回调参数 使用
启用事件验证<pages enableEventValidation="true"/>
在配置或
<%@Page EnableEventValidation="true" %> in a page.
出于安全考虑,此功能会验证回发或回调的参数 事件源自最初呈现它们的服务器控件 如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation 方法,以便注册回发或回调数据进行验证。
当我正在键入url'home.aspx'manualy时,它工作正常。
答案 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>