Model Create Ienumerable one for many

Asked

Viewed 62 times

0

I have the following doubt.

Having the MODEL MVC classes:

public class Categoria
{
       public int IdCategoria { get; set; }
        public string Nome { get; set; }
}

public class Produto
{
        public int IdProduto { get; set; }
        public string Nome { get; set; }
}


public class Secao
{
  public Categoria categoria { get; set; }
  public IEnumereble<Produto> produtos { get; set; }

}

How the Create View is done with the model Secao?
The class Categoria I was able to set in the view but the IEnumerable<Produto> couldn’t.

The scenario is that a section should be included with a category and n products.

1 answer

1

I don’t know if it’s the best solution, but one solution is this::

@{
   IEnumerable<Produto> produtos = ViewData["Produtos"] as IEnumerable<Produto>;
   IEnumerable<Categoria> categorias = ViewData["Categoria"] as IEnumerable<Categoria>;
}

@using (Html.BeginForm())
{
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)
   <fieldset>
        <div class="editor-label">
             @Html.LabelFor(model => model.Nome)
        </div>
        <div class="editor-field">
             @Html.DropDownList("Categoria", categorias as SelectList)
        </div>
        <div>
             @foreach (var produto in produtos)
             {
                  <div>
                      @Html.CheckBox("chk", false, new { @value = produto.IdProduto" })
                      <label>@produto.Nome</label>
                   </div>
             }
         </div>
     </fieldset>
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.