Display 3 Models in a View

1

I have 3 Models and need to mount 2 (two) lists and a "Save" button:

Class:TBProduct:

publicclassTBProduto{[Key]publicintTBPRODUTOID{get;set;}publicstringDSPRODUTO{get;set;}publicvirtualICollection<TBProdutoFornecedor>TBProdutoFornecedor{get;set;}}

TBClassProvider:

publicTBFornecedor()[Key]publicintTBFORNECEDORID{get;set;}publicstringNMFORNECEDOR{get;set;}publicvirtualICollection<TBProdutoFornecedor>TBProdutoFornecedor{get;set;}

TBProductProducerclass:

publicclassTBProdutoFornecedor{[Key]publicintTBPRODUTOTBFORNECEDORID{get;set;}publicintTBPRODUTOID{get;set;}publicintTBFORNECEDORID{get;set;}publicDateTimeDTPRODUTOFORNECEDOR{get;set;}publicvirtualTBProdutoProdutos{get;set;}publicvirtualTBFornecedorFornecedores{get;set;}}

Controller:

publicclassProdutoFornecedorController:Controller{privateIProdutoFornecedor_IRepositorio;publicProdutoFornecedorController():this(newProdutoFornecedorRepositorio()){}publicProdutoFornecedorController(IProdutoFornecedorrepositorio){_IRepositorio=repositorio;}publicActionResultIndex(){returnView();}}

PartialView-Product

@modelIEnumerable<Lamar.Dominio.Entidade.TBProduto><selectid="produto">
<option value="">Selecione um item</option>
@foreach (var item in Model)
{
    <option value="@item.CODPRODUTO">@item.DSPRODUTO</option>
}

PartialView - Vendor

@model IEnumerable<Lamar.Dominio.Entidade.TBFornecedor>
<select id="Selfornecedor">
<option value="">Selecione um item</option>
@foreach (var item in Model)
{
    <option value="@item.CODFORNECEDOR">@item.NMFORNECEDOR</option>
}

View Index

@model IEnumerable<Lamar.Dominio.Entidade.TBProdutoFornecedor>
@{
ViewBag.Title = "Index";
Layout = "~/Areas/Administrativo/Views/Shared/_AdministrativoLayout.cshtml";

}

<h2>Index</h2>
<div class="row">
<div class="form-group">
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_produto")</div>
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_fornecedor")</div>
</div>
<br />
<div class="form-group">
    <div class="col-md-6"><button type="button" class="btn btn-info" id="btn" value="">GRAVAR</button></div><div class="col-md-6"></div>
</div>

I've created the Supplier and Product lists via PartialView in the Shared folder.

The problem is that the lists always return null, I do not know if I skipped some step when creating those Views . In the database has Products and Suppliers registered and even so returns null.

    
asked by anonymous 28.09.2015 / 21:10

1 answer

2

You have not passed the Models possibilities in Partials . It will not work like this:

<div class="form-group">
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_produto")</div>
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_fornecedor")</div>
</div>

The right thing is for you to load all the possibilities of customers and suppliers into Action Index :

public ActionResult Index()
{
    ViewBag.ProdutosPossiveis = contexto.Produtos.ToList();
    ViewBag.FornecedoresPossiveis = contexto.Fornecedores.ToList();
    return View();
}

And then use this:

<div class="form-group">
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_produto", (IEnumerable<Produto>)ViewBag.ProdutosPossiveis)</div>
    <div class="col-md-2">FORNECEDOR</div><div class="col-md-2">@Html.Partial("_fornecedor", (IEnumerable<Fornecedor>)ViewBag.FornecedoresPossiveis)</div>
</div>
    
28.09.2015 / 22:07