我在MVC 3网站上使用jQuery Mobile。运行良好,除了我有一个链接到返回RedirectResult的控制器操作的标记。看起来jQuery正在拦截链接,每次都会出错。我得到移动框架输出的标准“发生错误”消息。使用Firebug检查响应显示响应完全为空。
我听说可能有一个数据属性我需要添加到标签中以使移动UI忽略它?关于那个或其他解决方案的任何想法?
编辑:为了澄清,URL正在正确生成并且是有效的URL,它与jQUery mobile拦截请求的方式有关。
<a href='/fullsite?p=@Request.ServerVariables["URL"]' title="view full site" >view full site</a>
public RedirectResult FullSite()
{
StringBuilder redirectUrl = new StringBuilder("http://www.site.com/");
try
{
string referringUrl = Request.QueryString["p"];
if (!String.IsNullOrEmpty(referringUrl) && referringUrl.Contains("photo-gallery"))
referringUrl = referringUrl.Replace(@"/photo-gallery", String.Empty);
redirectUrl.Append(referringUrl);
}
catch (Exception)
{
redirectUrl.Clear();
redirectUrl.Append("http://www.site.com");
}
CookieManager.SetMobileToFullSiteCookie();
return new RedirectResult(redirectUrl.ToString());
}
答案 0 :(得分:2)
我使用rel="external"
强制链接作为普通请求加载而不是使用AJAX。
<a href='/fullsite?pRequest.ServerVariables["URL"]'
rel="external"
title="view full site" >view full site</a>
您也可以使用data-ajax="false"
或为target
设置值,请参阅http://jquerymobile.com/demos/1.0a3/docs/pages/link-formats.html上的1.0a3文档