2011-12-06 2 views
1

다른 사용자가 보낸 사람의 메시지 목록을 포함하는받은 편지함 메시지 페이지가 있습니다. 이 메시지를 클릭하면이 두 사람 사이에 메시지 발신자가 보낸 메시지에 회신 할 수있는 메시지 스레드가 열립니다 (이 페이지는 MessageContent.aspx). 이것은 다른 페이지 (MessageReply.aspx)로 이동하여 응답자가 "Send Message"버튼을 사용하여 텍스트 영역 컨트롤에서 새 메시지를 생성 할 수있게하여 이전 스레드의 메시지 목록 끝에 해당 응답을 추가하고 Response.Redirect를 실행하여 해당 페이지로 돌아갑니다.jQuery Mobile 및 Reponse.Redirect를 사용하여 URL을 올바른/현재 페이지로 변경하려면 어떻게해야합니까?

전반적으로 나는 원하는대로 작동하지만, MessageReply 페이지에서 모든 스레드 메시지가 포함 된 페이지로 돌아갈 때 URL이 변경되지 않는다는 유일한 문제가 있습니다.

예를 들어, MessageDetail URL은 "http : //mysite/MessageContent.aspx? ThreadId = 24"입니다. 메시지에 회신하면 "http : //mysite/MessageReply.aspx? message = 26"이라는 URL로 이동합니다. 메시지가 세부 정보 페이지로 전송되어 메시지로 리디렉션되면 URL에 여전히 "http : //mysite/MessageReply.aspx? message = 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

가장 간단한 방법은 제출되는 양식 자체에서 아약스를 끄는 것이다. 다음 페이지를 작성하는 데 필요한 모든 애셋은 이미 캐시에 있어야하므로 각 페이지를 독립적으로 작성한 경우 다음 페이지가 리디렉션으로 반송 될 때로드 시간이 더 길어지지 않습니다.

은 다음 페이지는 GET 요청을 직접 호출 할 수있는 표준 JQM 페이지로 구성되어 있는지 확인하십시오, 그리고 ... 당신에게 문제를주고 폼에

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

을 Ajax를 해제하려면 그리고 모든 것이 잘되어야합니다.