Usuário com melhor resposta
Erro ao fazer o Bind Asp.Net MVC

Pergunta
-
Boa tarde,
Tenho uma classe chamada RCS e nela tenho algumas propriedades, uma delas é a obra a qual essa RCS será atribuida, para localizar a obra eu tenho um filtro por Pais, Estado e Cidade, assim só é listado no ultimo DropDown as obras da cidade selecionada. como não tenho as propriedades de Pais, Estado e Cidade na classe RCS fiz a View da Seguinte forma:
<div class="editor-label"> @Html.Label("Pais") </div> <div class="editor-field"> @Html.DropDownList("paises", (SelectList)ViewData["paises"], "Selecione", new { @ID = "PaisID" }) </div> <div class="editor-label"> @Html.Label("Estado") </div> <div class="editor-field"> @Html.DropDownList("Estado", Enumerable.Empty<SelectListItem>(), "Selecione", new { @ID = "Estado" }) </div> <div class="editor-label"> @Html.Label("Cidade") </div> <div class="editor-field"> @Html.DropDownList("Cidade", Enumerable.Empty<SelectListItem>(), "Selecione", new { @ID = "Cidade" }) </div>
O problema é que antes mesmo desses dados chegarem no controller (eu coloquei um break point para verificar) ele da um erro na pagina:Não existe item ViewData do tipo 'IEnumerable<SelectListItem>' que possui a chave 'Pais'
Eu acho que é por que o Asp.Net não consegue fazer o Bind por que falta as propriedades Pais, Estado e Cidade, eu não preciso armazenar essas propriedades no banco só preciso dela pra filtrar mesmo, como eu resolvo isso?
Respostas
-
Alan dá uma olhada nesse link: http://forums.asp.net/t/1976627.aspx?Error+viewdata+must+be+IEnumerable+SelectListItem+
Caso não, poste um print do ponto certo onde o erro ocorre.
Abraço.
- Marcado como Resposta Alan F. Almeida terça-feira, 12 de agosto de 2014 19:26
Todas as Respostas
-
Alan dá uma olhada nesse link: http://forums.asp.net/t/1976627.aspx?Error+viewdata+must+be+IEnumerable+SelectListItem+
Caso não, poste um print do ponto certo onde o erro ocorre.
Abraço.
- Marcado como Resposta Alan F. Almeida terça-feira, 12 de agosto de 2014 19:26
-
Fernando vlw, o problema é que quando você coloca um return View() ele retorna a View sem os dados do ViewData e o DropDown está esperando o ViewData. eu usei o return RedirectToAction("ActionName") para retornar a action que tem a criação do ViewData com os dados.
-