Usuário com melhor resposta
Passar duas variáveis do controller para a View

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á
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
}
- Sugerido como Resposta Fernando Mamprin sexta-feira, 12 de setembro de 2014 18:04
- Marcado como Resposta welington jrModerator sábado, 16 de dezembro de 2017 16:24
-
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.
- Editado Nando Silva sexta-feira, 12 de setembro de 2014 17:52
- Sugerido como Resposta Fernando Mamprin sexta-feira, 12 de setembro de 2014 18:04
- Marcado como Resposta welington jrModerator sábado, 16 de dezembro de 2017 16:24
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
}
- Sugerido como Resposta Fernando Mamprin sexta-feira, 12 de setembro de 2014 18:04
- Marcado como Resposta welington jrModerator sábado, 16 de dezembro de 2017 16:24
-
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.
- Editado Nando Silva sexta-feira, 12 de setembro de 2014 17:52
- Sugerido como Resposta Fernando Mamprin sexta-feira, 12 de setembro de 2014 18:04
- Marcado como Resposta welington jrModerator sábado, 16 de dezembro de 2017 16:24