Как передавать данные между страницами без сессий в ASP.net MVC - PullRequest
2 голосов
/ 11 июня 2010

У меня есть одно приложение, в котором я хочу передавать данные между страницами (представлениями) без сеансов. На самом деле я хочу применить некоторые настройки ко всем страницам, используя строку запроса. Например, если моя ссылка похожа на «http://example.com? Data = test1 », то я хочу добавить эту строку запроса ко всем ссылкам, указанным там после, и, если строка запроса отсутствует, то нормальный поток.

Я подумал, что если мы получим строку запроса в какой-либо ссылке на веб-приложение, то можно будет установить какое-то специфическое для пользователя свойство уровня приложения, которое можно будет использовать для последующих страниц.

Спасибо, Ashwani

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

Вы можете получить строку запроса, используя

Request.Url.Query

, и по ссылкам на другую страницу вы можете отправить ее.

Вот идея, как вы можете найти и изменитьваша страница:

public abstract class BasePage : System.Web.UI.Page
{
    protected override void Render(System.Web.UI.HtmlTextWriter writer)    
    {
        System.IO.StringWriter stringWriter = new System.IO.StringWriter();

        HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

        // now you render the page on this buffer
        base.Render(htmlWriter);

        // get the buffer on a string
        string html = stringWriter.ToString();

        // manipulate your string html, and search all your links (hope full find only the links)
        // this is a simple example of replace, THAT PROBABLY not work and need fix         
        html = html.Replace(".aspx", ".aspx?" + Request.Url.Query);

        writer.Write(html);
    }
}

Я не предлагаю этого, как всегда, и я думаю, что вы должны найти какой-то другой способ избежать манипулирования всеми своими ссылками ...

0 голосов
/ 11 июня 2010

Я не понимаю, какие данные вы пытаетесь передать.Потому что мне кажется странной идея перехвата всех ссылок.

В любом случае, я полагаю, вы можете найти класс TempData полезным для передачи данных между перенаправлениями.

И последнее предупреждение, будьте осторожны с TempData, оно немного изменилось между MVC 1 и 2:
ASPNET MVC2: TempData Now Persists

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...