Как заставить URL-адрес перейти на правильную / текущую страницу с помощью jQuery Mobile и Reponse.Redirect? - PullRequest
1 голос
/ 06 декабря 2011

У меня есть страница Входящие сообщения, которая содержит список сообщений, отправленных человеку другим пользователем.Нажатие на это сообщение откроет поток сообщений между этими двумя людьми с возможностью ответить на сообщение, отправленное оригинальным отправителем (эта страница - MessageContent.aspx).Это переходит на другую страницу (называемую MessageReply.aspx), которая позволяет человеку, отвечающему, создать новое сообщение в элементе управления textarea с помощью кнопки «Отправить сообщение», которая добавляет этот ответ в конец списка сообщений в предыдущей теме иделает Response.Redirect, чтобы вернуться на эту страницу.

В целом у меня все работает так, как я хочу, но теперь единственная проблема заключается в том, что URL никогда не меняется при переходе со страницы MessageReply обратно на MessageDetail (страница, содержащая все сообщения цепочки).

Например, URL-адрес MessageDetail: "http://mysite/MessageContent.aspx?ThreadId=24". Ответ на сообщение идет по этому URL-адресу:" http://mysite/MessageReply.aspx?message=26". Когда сообщение отправляется на страницу сведений и перенаправляетк этому URL все еще показывает "http://mysite/MessageReply.aspx?message=26"

Вот код, который я имею в MessageDetail, чтобы открыть страницу ответа (используя элемент управления HyperLink):

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-адрес при отправке сообщениявозраст ответ?Все остальное работает нормально.Я очень ценю это:)

1 Ответ

2 голосов
/ 06 декабря 2011

Самый простой способ для этого - отключить ajax в самой отправляемой форме.Все ресурсы, необходимые для создания следующей страницы, уже должны быть в кэше, поэтому, когда ваша следующая страница будет перенаправлена ​​с перенаправлением, при условии, что вы создали каждую страницу отдельно, время загрузки не будет больше.

Чтобы отключить Ajax в форме, которая доставляет вам неприятности ...

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

Тогда просто убедитесь, что следующая страница построена как стандартная страница JQM, которую можно вызывать напрямую.с запросом GET и все должно быть в порядке.

...