2016-01-11 2 views
0

Я использую сеансы в ASP.NET MVC4, и я храню некоторые данные в сеансе, все работает хорошо, пока я не нажму кнопку, и все сеансы в приложениях станут ноль.Счетчик сеансов Asp.NET MVC возвращается к 0 после нажатия кнопки

<button id="btnExport">Export To Excel</button> 

$('#btnExport').click(function() { 
     window.location.href = "/Home/DownloadFile?Id=2"; 
}); 

Как только я ударил по методу действий в своем контроллере, все сеансы в приложении равны нулю. Я попытался использовать Ajax GET-запрос вместо window.location.href.

вот моя установка

<sessionState cookieless="false" mode="InProc" timeout="60" /> 

и в Global.asax я есть этот

protected void Session_Start(Object sender, EventArgs e) 
{ 
    Session["init"] = 0; 
} 

и я проверка графа web.config

var sessionCount = Session.Count; 

Также с помощью Visual Studio наблюдать за моим объектом сеанса.

Я использую проверку подлинности Windows.

Можете ли вы, ребята, помочь, почему сеансы удалены по запросу кнопки?

Thanks

+0

Как узнать, удалено или нет? Как вы это подтверждаете? – Shyju

+0

Visual Studio Watch Window. Я смотрю общее количество моих сеансов, также я проверяю, будет ли мой сеанс нулевым или нет. Все сеансы становятся нулевыми. – dnts2012

+0

Вам нужно показать этот код, чтобы люди могли помочь – Shyju

ответ

0

Я думаю, вы неправильно поняли концепцию. Session_start() будет запущен всегда, что приведет к повторной инициализации вашего значения сеанса до 0.

Обход: Создание базового контроллера и наследуют это в каждый контроллер вы делаете. Переопределить OnActionExecuting() функцию в базовом контроллере, а затем управлять сеансом. Кроме того, сеанс в MVC находится в текущем контексте контроллера, поэтому используйте его широко.

 Смежные вопросы

  • Нет связанных вопросов^_^