2015-01-10 4 views
0

Переменная сеанса, потерянная после того, как контроллер вызывает другую.MVC 5 Сессия не поддерживается при переходе на другой Вид

public ActionResult Index(Customer model, string cancel, string effective) 
{ 
if(!string.IsNullOrEmpty(cancel)) 
    { 
    //update database 
    Session["variable2"] = new Info(){ Text = "Do not processed"}; 
    return View("Cancelation"); //error stated occurs when calling another view 
    } 
if(!string.IsNullOrEmpty(effective) 
    { 
    //do data base update 
    Session["variable1"] = new Info(){ Text = "Processed"}; 
    return View(model); //All good here 
    } 
{ 

У меня есть контроллер MVC, что, когда после вернуться к нему я устанавливаю Session переменную «Variable1», то я вернуться View (модель). В этом случае все хорошо, я могу получить доступ к новой переменной Session1 везде.

Но когда я снова отправляю обратно на тот же контроллер, я проверяю кнопку, а затем устанавливаю другую переменную сеанса, «переменная2» на этот раз возвращаю View("Cancelation").

Эта последняя переменная2 потеряна и не отображается на HttpContext.Current.Session["variable2"] в любом месте приложения.

Может кто-нибудь помочь понять почему?

+1

Можете ли вы разместить код контроллера? –

+0

Опубликуйте это как ответ, тогда, когда сможете, примите его для будущих посетителей с такими же проблемами. –

ответ

0

Я обнаружил, что, поскольку я использовал SQL Server в качестве хранилища сеансов, мне пришлось использовать атрибут Serialize() для объекта, а затем он работал.

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