2011-12-06 24 views
1

我有一個收件箱消息頁面,其中包含由其他用戶發送給某人的消息列表。單擊此消息將打開這兩個人之間的消息線程,並能夠回覆原始發件人發送的消息(此頁面爲MessageContent.aspx)。這轉到另一個頁面(稱爲MessageReply.aspx),它允許用戶在一個textarea控件中創建一個新消息,該按鈕帶有一個按鈕「Send Message」,該消息將回復添加到上一個線程中消息列表的末尾,做一個Response.Redirect回到那個頁面。如何使用jQuery Mobile和Reponse.Redirect將URL更改爲正確的/當前頁面?

總的來說,我有一切工作如何我想,但現在唯一的問題是,從MessageReply頁面返回到MessageDetail(一個包含所有線程消息的頁面)頁面時,URL永不會更改。

例如,MessageDetail URL是「http://mysite/MessageContent.aspx?ThreadId = 24」。 回覆郵件至此URL:「http://mysite/MessageReply.aspx?message = 26」。 當郵件發送到詳細信息頁面並重定向到該URL時,URL仍顯示「http://mysite/MessageReply.aspx?mail=26」

這裏是我在MessageDetail中打開回復頁面(用超鏈接控制):

string url = SPContext.Current.Site.ServerRelativeUrl + "/MessageReply.aspx"; 
       HyperLink ReplyHyperLink = (HyperLink)e.Item.FindControl("MessageReply"); 
       ReplyHyperLink.Attributes.Add("rel", "external"); 
       ReplyHyperLink.NavigateUrl = QueryStringUtils.AppendParameter(url, MessageQueryString, item.Id); 

這裏是我對MessageReply SendMesage按鈕的代碼:

// Send the message 
      var contentEditor = (HtmlTextArea)this.FindControl("ContentEditor"); 
      client.SendMessageReply(_messageId.Value, SubjectTextBox.Text, contentEditor.InnerText); 

      Message message = client.Read(_messageId.Value); 

      // Redirect back to the MessageContent page 
      string url = SPContext.Current.Site.ServerRelativeUrl + "/MessageContent.aspx"; 
      string pageUrl = QueryStringUtils.AppendParameter(url, ThreadIdQueryString, message.ThreadId); 
      Response.Redirect(pageUrl); 

任何人有任何想法如何獲取URL改變時,它發出的消息回覆?其他一切工作正常。我非常感謝:)

回答

2

最簡單的方法是關閉正在提交的表單上的ajax。構建下一頁所需的所有資源應該已經在緩存中,所以當您的下一個頁面被重定向反彈時,如果您將每個頁面製作成獨立頁面,加載時間不會更長。

要關閉阿賈克斯是傳給你的麻煩在窗體上...

<form ... ... data-ajax="false"> 

然後,只要確定下一個頁面被構建爲標準JQM頁面,可以直接用GET請求調用一切都應該沒問題。

相關問題