Используйте переменную сеанса, чтобы выбрать дату на одной странице и оставить ее неизменной после выхода из страницы в C # - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть страница, которая позволяет пользователю выбрать дату начала.Когда они выбирают эту конкретную дату, я бы хотел, чтобы они могли перейти на другую страницу, а затем вернуться на эту страницу, оставив дату начала неизменной.Кто-нибудь знает, как сделать это, используя переменную сеанса в MVC4?

  m.StartDate = DateTime.Today.AddDays(-1);
  m.EndDate = DateTime.Today.AddDays(-1);

  m.StartDate = new DateTime(2018, 10, 18);
  m.EndDate = new DateTime(2018, 10, 18);

  Session["StartDate"] = m.StartDate; 

  if(Session["StartDate"] !=null)
  {
       //show the date selected by the user
  } 
  else {
  m.StartDate = new DateTime(2018, 10, 18);
  m.EndDate = new DateTime(2018, 10, 18);
  }

  parameters.StartDate = m.StartDate;
  parameters.EndDate = m.EndDate;

Просмотр модели:

    public List<rptStoreTransferLog> lstFilteredrptStoreTransferLog = new List<rptStoreTransferLog>();
    public List<rptStoreTransferLog> rptStoreTransferLog = new List<rptStoreTransferLog>();
    public List<StoreDefinition> lstStoreDefinition = new List<StoreDefinition>();
    public SelectionFilter SelectionFilter;
    public DateTime StartDate;
    public DateTime EndDate;
    public bool SingleDateSelect;
    public string SearchText = "";
    public string SearchPlaceholderText = "";
    public string PreviousColumnSearch = "StoreName";
    public string strSingleDateSelect = " Single Date Select";
    public int PreviousSelectedDivisionID;
    public int PreviousSelectedProfitCentreID;
    public int PreviousSelectedJobID;
    public int PreviousSelectedStatusID;
    public SelectReportSelections SelectReportSelections = new SelectReportSelections();


View: 

@helper GetSingleDateSelect()
{
  if (Model.SingleDateSelect == true)
  {
    @Html.CheckBoxFor(m => m.SingleDateSelect, new { @checked = "checked" });
    @Html.DisplayTextFor(m => m.strSingleDateSelect)
  }
  else
  {
    @Html.CheckBoxFor(m => m.SingleDateSelect);
    @Html.DisplayTextFor(m => m.strSingleDateSelect)
  }
}

1 Ответ

0 голосов
/ 26 февраля 2019

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

Из вашего вопроса неясно, как именно вы его подключили, но вам нужна дата, чтобы ввести ее в модельсвойство, то вы сохраните это в сеансе, если хотите.Однако обычно вы просто отправляете его обратно в модель для второй страницы и сохраняете его как скрытое значение.Тогда ваше приложение остается красивым и не сохраняющим состояния, и вам не нужно беспокоиться о переменных сеанса.

...