Usando o cookie no asp.net mvc c #

Quero registrar o parâmetro de algumas páginas no meu site usando cookies. Eu tentei o código abaixo, mas não gosto do que eu quero:

 public ActionResult Index(int? dep, int? cat)
 {
   ......
   string theDept = Request.QueryString["dep"];
   HttpCookie cookie = new HttpCookie("search");
   cookie.Values["dep_name"] = theDept;
   cookie.Expires = DateTime.Now.AddDays(1);
   Response.Cookies.Add(cookie);
   return View();
 }

Eu li no site.master:

<% 

HttpCookie cookie = Request.Cookies["search"] ;

if ((cookie != null) && (cookie.Value != ""))
{
    Response.Write(cookie.Values["dep_name"].ToString() + "---" +   
    cookie.Values["cat_name"].ToString() + "---" + cookie.Values["brand"].ToString());
}
%>

Problema: Quando clico em outra página queRequest.QueryString["dep"] é nulo, o cookie que eu exibo é nul

Como armazená-lo no cookie sem perder enquanto ainda não o limpamos?