0
這是我的ViewModel:如何獲取IEnumerable <SelectListItem>中的選定項目?
//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; }
這是我的控制器:
private IEnumerable<SelectListItem> GetCategoria()
{
var query = contexto.CategoriaMateria.OrderBy(x => x.Nome).ToList();
var categorias = query.AsEnumerable().Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Nome
}).ToList();
return categorias;
}
,這是我的看法:
<label class="editor-label">
@Html.LabelFor(model => model.CategoriaMateriaSelecionada)
</label>
<label class="editor-field">
@Html.DropDownListFor(model => model.CategoriaMateriaSelecionada, Model.ListaCategorias)
</label>
我的問題是,當我'想救我CategoriaMateriaSelecionada喜歡此代碼:
[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);
}
該程序向我顯示錯誤: 具有'CategoriaMateriaSelecionada'鍵的ViewData項的類型爲'System.String',但必須是'IEnumerable'類型。 在我進入HTTpPOST的那一刻,listaCategoria爲null爲什麼? 爲什麼這個不能工作的問題是什麼?
我不明白,你開始你的ListaCategorias。 – IamStalker 2012-01-03 21:41:57