I'm trying to register a Subcategory that needs a Category. I have the SubCategoryViewModel, where I created the public IEnumerable<CategoriaViewModel> Categorias { get; set; }
and public Guid CategoriaId { get; set; }
fields. I also have public virtual Categoria Categoria { get; set; }
pro EF.
My question is : How would I implement to receive my Viewer on my Controller ?
In my ViewModel I have this:
public class SubCategoriaViewModel
{
public SubCategoriaViewModel()
{
}
[Key]
public Guid SubCategoriaId { get; set; }
[Required(ErrorMessage = ("Preencha o nome da SubCategoria."))]
[MaxLength(60, ErrorMessage = ("Máximo {0} caracteres."))]
[MinLength(1, ErrorMessage = ("Mínimo {0} caracteres."))]
[DisplayName("Nome")]
public string SubCategoriaNome { get; set; }
public IEnumerable<CategoriaViewModel> Categorias { get; set; }
public Guid CategoriaId { get; set; }
//[ScaffoldColumn(false)]
//public DomainValidation.Validation.ValidationResult ValidationResult { get; set; }
public virtual Categoria Categoria { get; set; }
//public ICollection<Produto> Produtos { get; set; }
}
In my View I have this:
<div class="form-group">
@Html.LabelFor(model => model.Categoria, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@* Este aqui tá dando certo aparecer na tela, mas não imagino um implementação para pegar um item selecionado *@
@Html.DropDownListFor(model => model.CategoriaId,
new SelectList(Model.Categorias, "CategoriaId", "CategoriaNome"), new { @class = "form-control" })
@* Esse aqui é so pra teste *@
@Html.DropDownListFor(model => model.CategoriaId,
new SelectList(Model.Categorias, "CategoriaId", "CategoriaNome"), ((IEnumerable < Categorias)), new { @class = "form-control" })
</div>
</div>
In my Controller of Subcategory I have this:
// GET: SubCategorias/Create
public ActionResult Create()
{
subCategoriaViewModel.Categorias = _categoriaAppService.ObterTodas();
return View(subCategoriaViewModel);
}
// POST: SubCategorias/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
SubCategoriaViewModel subCategoriaViewModel)
{
subCategoriaViewModel =
_subCategoriaAppService
.Adicionar(subCategoriaViewModel);
return View(subCategoriaViewModel);
}