2009-11-19 5 views
0

В моем приложении mvc у меня есть контроллер, где многие действия являются их.Элемент управления

У меня есть свойство для класса контроллера.

В индексном контроллере я устанавливаю значение для свойства,

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

public class HomeController : BaseController 
    { 
int sample =0; 

public ActionResult Index(int query) 
     { 
     this.sample = test; 
     } 

     public ActionResult Result() 
     { 
     this.sample -------- can this 'll give the value of wat i get in index action. 

    } 

}

ответ

1

Поскольку контроллер будет созданный и уничтоженный с каждым веб-запросом, вы не можете хранить данные в частных переменных через веб-запросы, что хорошо, потому что разные пользователи будут делать разные запросы, поэтому вам нужно использовать кеширование.

Попробуйте это:

public class HomeController : BaseController 
    { 

     public ActionResult Index(int query) 
     { 
      ControllerContext.HttpContext.Session["query"] = query; 
     } 

     public ActionResult Result() 
     { 
      int query = (int)ControllerContext.HttpContext.Session["query"]; 
     } 
    } 
+0

я использовал TempData это будет общим для всех пользователей или для одного отдельного соединения TempData будет там ..? – Santhosh

+0

Словарь данных TempData доступен для текущего запроса и сразу следующего запроса для одного пользователя. –

+0

вместо использования кеша вы можете сохранить его в HttpContext.session ["query"], это лучший вариант? .. thanks –

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