jQuery Mobile不使用MVC RedirectResult

时间:2011-03-04 18:31:37

标签: c# asp.net-mvc jquery-mobile

我在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());
                }

1 个答案:

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