Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Alguém sabe como posso corrigir este erro ?
Additional information: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key
Acontece quando tento persistir dados na tabela
Trecho da VIEW
<div class="editor-label">
@Html.LabelFor(model => model.estado)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.estado, (List<SelectListItem>)ViewBag.UF, "UF")
</div>
Trecho da Action
var siglasEstaduais = uf.uf();
var siglasItens = new List<SelectListItem>();
foreach (var item in siglasEstaduais)
{
siglasItens.Add(new SelectListItem
{
Value = item.Estado,
Text = item.Estado
});
}
ViewBag.UF = siglasItens;
Trecho do Modelo de Entidade (O modelo criei só para poder obter dados para gerar a lista, nunca existirá fisicamente no banco)
public class estados
{
public int? Id { get; set; }
public string Estado { get; set; }
public IEnumerable<estados> uf()
{
estados uf = new estados();
List<estados> estado = new List<estados>();
estado.Add(new estados { Id=1,Estado="AC"});
estado.Add(new estados { Id = 2, Estado = "AL" });Valew amigo mas ainda não rolou
*The ViewData item that has the key 'estado' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'*
Depois *DataBinding: 'SysEscola.Models.estados' não contém uma propriedade com o nome 'Value'.*
Vou apelar para o método tradicional para a criar essa Lista de itens
Acredito que estes erros devam ser pelo motivo do Dropdownlist ter que trabalhar com pares de chaves e valores e minha entidade uma vez que é ficticia não possua uma key do tipo int Obrigado mesmo assim
Tenta:
@Html.DropDownList("estado", ViewBag.UF as List<SelectListItem>))
Ou muda sua action para:
E na view:
@Html.DropDownList("estado", ViewBag.UF as SelectList)