none
Trocar informacoes entre views RRS feed

  • Pergunta

  • Como posso mandar uma informacao que tenho em uma view, para outra view? O viewbag nao funciona neste caso, certo?
    quinta-feira, 27 de dezembro de 2012 19:36

Respostas

  • Para passar dados entre actions você usa o objeto Session. Os dados colocado em session ficam disponiveis apenas no servidor, não indo para o browser do cliente. Seu uso é bem simples, basta informar um indice (que pode ser uma string ou inteiro) e o valor que estará associado a esse indice:

    public ActionResult Alpha() { Session["senha"] = "swordfish"; //Aqui definimos um indice 'senha' e o valor 'swordfish' return View(); } public ActionResult Betha() {

    //Caso queira acessar o valor direto na view use @Session["senha"]
    ViewBag.Senha = Session["senha"]; //Aqui na outra action só pegamos o valor da session

    return View(); }

    //Para limpar os dados da session use Session.Clear();



    quinta-feira, 27 de dezembro de 2012 23:54
  • Com certeza com session funcionaria, mas será que não poderia usar Tempdata?

    O funcionando seria igual ao sugerido pelo Ildyone, porém o Tempdata é temporário...

    Nesse link explica melhor!

    http://www.felipeoriani.com.br/blog/post/2011/09/06/ASPNET-MVC-Quando-utilizar-ViewBag-ViewData-TempData.aspx



    Se ajudou não esqueça de marcar como útil =) Alan Bruno Heil

    sexta-feira, 28 de dezembro de 2012 11:24
  • Sim Alan, o TempData seria o ideal para fazer algo simples como passar uma variável de uma action para outra..

    A Session seria uma péssima escolha...


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    sábado, 29 de dezembro de 2012 01:11

Todas as Respostas

  • Como assim? Você pode explicar seu cenário?

    Paulo Marcelo Dalbosco

    quinta-feira, 27 de dezembro de 2012 20:01
  • Se vc digitar algum valor na View ela vai para o controler, la no controler vc pode carregar ela em uma variável global e depois jogar em uma viewbag para levar para outra view.

    Paulo Marcelo Dalbosco

    quinta-feira, 27 de dezembro de 2012 20:03
  • Para passar dados entre actions você usa o objeto Session. Os dados colocado em session ficam disponiveis apenas no servidor, não indo para o browser do cliente. Seu uso é bem simples, basta informar um indice (que pode ser uma string ou inteiro) e o valor que estará associado a esse indice:

    public ActionResult Alpha() { Session["senha"] = "swordfish"; //Aqui definimos um indice 'senha' e o valor 'swordfish' return View(); } public ActionResult Betha() {

    //Caso queira acessar o valor direto na view use @Session["senha"]
    ViewBag.Senha = Session["senha"]; //Aqui na outra action só pegamos o valor da session

    return View(); }

    //Para limpar os dados da session use Session.Clear();



    quinta-feira, 27 de dezembro de 2012 23:54
  • Com certeza com session funcionaria, mas será que não poderia usar Tempdata?

    O funcionando seria igual ao sugerido pelo Ildyone, porém o Tempdata é temporário...

    Nesse link explica melhor!

    http://www.felipeoriani.com.br/blog/post/2011/09/06/ASPNET-MVC-Quando-utilizar-ViewBag-ViewData-TempData.aspx



    Se ajudou não esqueça de marcar como útil =) Alan Bruno Heil

    sexta-feira, 28 de dezembro de 2012 11:24
  • Exato, quem pode dizer se serve ou não é o autor da pergunta. O Session tem um funcionamento mais genérico, o que faz com que os dados fiquem disponíveis até o programador chamar Session.Clear() para retirar tudo da session ao contrário do TempData que após o dado ser lido, este é removido da sessão no fim da requisição.
    • Editado Ildyone sábado, 29 de dezembro de 2012 00:53
    sábado, 29 de dezembro de 2012 00:52
  • Sim Alan, o TempData seria o ideal para fazer algo simples como passar uma variável de uma action para outra..

    A Session seria uma péssima escolha...


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    sábado, 29 de dezembro de 2012 01:11