Asp.net mvc 3 如何获取IEnumerable中的选定项?

Asp.net mvc 3 如何获取IEnumerable中的选定项?,asp.net-mvc-3,entity,Asp.net Mvc 3,Entity,这是我的ViewModel: //Categoria da Materia public IEnumerable<SelectListItem> ListaCategorias { get; set; } //Categoria Matéria que foi selecionada pelo usuário na área pública public string CategoriaMateriaSelecionada { get; set; } 程序显示一

这是我的ViewModel:

//Categoria da Materia
   public IEnumerable<SelectListItem> ListaCategorias { get; set; }

  //Categoria Matéria que foi selecionada pelo usuário na área pública
    public string CategoriaMateriaSelecionada { get; set; }
程序显示一个错误: 具有键“CategoriaMaterialElecionada”的ViewData项的类型为“System.String”,但必须为“IEnumerable”类型。 在我进入HTTpPOST的那一刻,listaCategoria是空的,为什么?
为什么这样做不起作用呢?

你应该这样做。。。。 此示例仅用于演示

//Categoria da Materia
public IEnumerable<SelectListItem> ListaCategorias 
{ 
    get { return GetCategoria(); }   
}

我看不出你会发起你的列表分类。
<label class="editor-label">
            @Html.LabelFor(model => model.CategoriaMateriaSelecionada)
        </label>
        <label class="editor-field">
           @Html.DropDownListFor(model => model.CategoriaMateriaSelecionada, Model.ListaCategorias)
        </label>  
 [HttpPost]
        public ActionResult Novo(NovoViewModel novoViewModel , string imagemCapa)
        {

            if (ModelState.IsValid)
            {
                Materia noticia = new Materia()
                                      {
                                          CategoriaMateria = contexto.CategoriaMateria.Find(Convert.ToInt64((novoViewModel.CategoriaMateriaSelecionada))),
                                          Titulo = novoViewModel.Titulo,
                                          Chamada = novoViewModel.Chamada,
                                          Corpo = novoViewModel.Corpo,
                                          DataPublicaco = DateTime.Now,
                                          Status = novoViewModel.Status,
                                          Imagem = contexto.Imagem.Find(Convert.ToInt64(imagemCapa))
                                      };

                contexto.Materia.Add(noticia);
                contexto.SaveChanges();
                return RedirectToAction("Index");

            }

            return View(novoViewModel);
        }
//Categoria da Materia
public IEnumerable<SelectListItem> ListaCategorias 
{ 
    get { return GetCategoria(); }   
}