none
Passar duas variáveis do controller para a View RRS feed

  • Pergunta

  • Bom dia pessoal,

    Tenho um controller e uma view. 

    No controller terei que passar para a view duas variáveis para a view.

    1 - List<>

    2 - String

     Atualmente consigo passar apenas uma variável, utilizando return View(new List<Objeto>()) e tratando na View através de @model. Existe alguma possibilidade de passar a segunda variável, que utilizarei no HTML?

    Obrigado desde já

    sexta-feira, 12 de setembro de 2014 14:23

Respostas

  • controller

    ViewBag.NomeVariavelQualquer1 = new List<T>();

    ViewBag.NomeVariavelQualquer2 = new string();

    View

    @if(ViewBag.NomeVariavelQualquer1 != null){

    @forearch(var item in ViewBag.NomeVariavelQualquer1)

    {

    @item

    }

    }

    @if(ViewBag.NomeVariavelQualquer2 != null){

    @ViewBag.NomeVariavelQualquer2

    }

    sexta-feira, 12 de setembro de 2014 14:39
  • Bruno, existem 4 formas de passar os  dados do Controller para a View

    • ViewBag
    • ViewData
    • TempData
    • Model

    A ViewBag utiliza de propriedades Dinamicas e deixam de existir após a exibição em uma view.

    ViewData, utiliza um dicionario de dados e também deixam de existir após a exibição de uma view, uma ViewBag, é uma ViewData após compilação, então tome cuidado, pois se existirem com o mesmo nome, o valor pode sobrepor o outro.

    TempData, muito semelhante a ViewBag e ViewData, porem o tempo de vida dela é um pouco mais longo, durando somente um redirect.

    E o Model que são classes(entidades) que podem ser envias a views.

    Podendo ser usadas das seguintes maneiras.

    Controller:

    ViewBag.NomeDaPropriedade = Valor;
    ViewData["NomeDaPropriedade"] = "valor";
    TempData["NomeDaPropriedade"] = "valor";
    return View(modelo);


    View

     var valor = ViewBag.NomeDaPropriedade;
     var modelo = Model;

    Espero ter ajudado.

    Fernando Silva - MCTS

    sexta-feira, 12 de setembro de 2014 17:51

Todas as Respostas

  • controller

    ViewBag.NomeVariavelQualquer1 = new List<T>();

    ViewBag.NomeVariavelQualquer2 = new string();

    View

    @if(ViewBag.NomeVariavelQualquer1 != null){

    @forearch(var item in ViewBag.NomeVariavelQualquer1)

    {

    @item

    }

    }

    @if(ViewBag.NomeVariavelQualquer2 != null){

    @ViewBag.NomeVariavelQualquer2

    }

    sexta-feira, 12 de setembro de 2014 14:39
  • Bruno, existem 4 formas de passar os  dados do Controller para a View

    • ViewBag
    • ViewData
    • TempData
    • Model

    A ViewBag utiliza de propriedades Dinamicas e deixam de existir após a exibição em uma view.

    ViewData, utiliza um dicionario de dados e também deixam de existir após a exibição de uma view, uma ViewBag, é uma ViewData após compilação, então tome cuidado, pois se existirem com o mesmo nome, o valor pode sobrepor o outro.

    TempData, muito semelhante a ViewBag e ViewData, porem o tempo de vida dela é um pouco mais longo, durando somente um redirect.

    E o Model que são classes(entidades) que podem ser envias a views.

    Podendo ser usadas das seguintes maneiras.

    Controller:

    ViewBag.NomeDaPropriedade = Valor;
    ViewData["NomeDaPropriedade"] = "valor";
    TempData["NomeDaPropriedade"] = "valor";
    return View(modelo);


    View

     var valor = ViewBag.NomeDaPropriedade;
     var modelo = Model;

    Espero ter ajudado.

    Fernando Silva - MCTS

    sexta-feira, 12 de setembro de 2014 17:51