Сбой кэша с несколькими страницами - PullRequest
0 голосов
/ 31 августа 2018

У меня есть поток, в котором у меня есть два адреса, но он выглядит как 3 разные страницы.

  • Первая страница, eligibility.aspx (которая выглядит как две: Member Поиск и результаты поиска участников). Результаты поиска участников могут показать 0-много результатов.
  • Вторая страница (третья в процессе) / Участники / член-деталь. Доступ к нему осуществляется после нажатия участник с экрана результатов поиска участников

Что я хочу :

Я хочу, чтобы пользователи могли переходить с экрана 3 (сведения об участнике) к результатам поиска участников и даже к поиску участников. Но когда они возвращаются в Поиск участников, я хочу, чтобы любая информация, напечатанная в полях, исчезла.

Я попытался сделать это с кэш-памятью, но при переходе с экрана 3 на экран 2 произойдет сбой следующего:

Срок действия веб-страницы истек


Код: (eligibility / default.aspx.cs):

protected void Page_Load(object sender, EventArgs e) {

.....

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
            Response.Cache.SetNoStore();

protected void lnkSearch_Click(object sender, EventArgs e)
        {

            ShouldSearch = false;
            litError.Text = "";
            ClearAllSearchInputVars();

            // Member ID
            if (!string.IsNullOrEmpty(tbSearchMemberID.Text))
                Search_MemberID = tbSearchMemberID.Text;
                tbSearchMemberID.Text = ""; // clear field after clicking search

  protected void ClearAllSearchInputVars()
        {
            Search_MemberID = "";
            Search_MemberFirstName = "";
            Search_MemberLastName = "";
            Search_DateOfBirth = "";
            Search_Gender = "";
        }

protected void LoadMember(string memberID, string memberSequenceID = null)
        //protected void LoadMember(int memberID, string memberSequenceID=null)
        {
            tbSearchMemberID.Text = ""; //may just want to set text to Empty String like this 
            tbDateOfBirth.Text = "";
            tbSearchMemberLastName.Text = "";
            if (string.IsNullOrEmpty(memberSequenceID))
                Response.Redirect(String.Format("/members/member-detail/{0}", memberID));
            else
                Response.Redirect(String.Format("/members/member-detail/{0}/{1}", memberID, memberSequenceID));            
        }

Я видел, что это использовалось в ряде решений для SO, так что, похоже, это должно быть то, что нужно. Могу ли я не использовать эту функцию кэширования, когда у меня есть несколько экранов на странице?

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