2010-03-10 14 views
5

Tabla Producto Id de producto Nombre Producto¿Cómo actualizar una a muchas entidades de relación desde la misma vista?

Tabla Proveedor IdProveedor ProductId SupplierName

Cuando creo un nuevo producto, quiero tener un cuadro de texto para introducir un proveedor de bien en la misma vista ¿Es esta una buena practica? Dado que Product puede tener muchos proveedores, quiero poder agregar más registros de proveedores desde la misma vista. ¿Cómo hago eso?

Estoy tratando de averiguar qué pongo en la página aspx?

Si pongo algo así como <% = Html.TextBoxFor (modelo => model.Supplier)%> Veo un cuadro de texto con System.Data.Objects.DataClasses.EntityCollection`1 [MyProject.Mvc.Models.Supplier] en eso.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage<MyProject.Mvc.Models.ProductFormViewModel>" %> 
<%= Html.ValidationSummary("Please correct the errors and try again.") %> 
<% using (Html.BeginForm()) {%> 
<fieldset> 
<legend>Fields</legend> 

<div class="editor-label"> 
    <%= Html.LabelFor(model => model.Product.ProductId) %> 
</div> 
<div class="editor-field"> 
    <%= Html.TextBoxFor(model => model.Product.ProductId) %> 
    <%= Html.ValidationMessageFor(model => model.Product.ProductId) %> 
</div> 

<div class="editor-label"> 
    <%= Html.LabelFor(model => model.Product.ProductName) %> 
</div> 
<div class="editor-field"> 
    <%= Html.TextBoxFor(model => model.Product.ProductName) %> 
    <%= Html.ValidationMessageFor(model => model.Product.ProductName) %> 
</div> 

<div class="editor-label"> 
    <%= Html.LabelFor(model => model.Product.Description) %> 
</div> 
<div class="editor-field"> 
    <%= Html.TextBoxFor(model => model.Product.Description) %> 
    <%= Html.ValidationMessageFor(model => model.Product.Description) %> 
</div>    
<p> 
    <input type="submit" value="Create" /> 
</p> 
</fieldset> 

<% } %> 

ProductViewModel

public class ProductFormViewModel 
{ 
    public Product Product{ get; private set; } 
    public IEnumerable<Supplier> Supplier { get; private set; } 

    public ProductFormViewModel() 
    { 
     Product = new Product(); 
    } 

    public ProductFormViewModel(Product product) 
    { 
     Product = product; 
     Supplier = product.Supplier; 
    } 
} 
+0

En pocas palabras, deseo agregar un nuevo producto y, en la vista Crear producto, quiero agregar el primer proveedor. Entonces, probablemente, desde la vista de edición del producto, debería poder agregar proveedores adicionales. Al hacer clic en algo en la vista Editar se abrirá un cuadro de texto para ingresar un Nuevo Proveedor y al enviarlo se actualizará el Proveedor del Producto. El producto y el proveedor tienen una relación de uno a muchos. – Picflight

+0

Arghh! Estoy teniendo un momento tan difícil envolviendo mi cabeza alrededor de MVC. Muchas veces he pensado simplemente hacerlo en formularios web pero no quiero rendirme. – Picflight

Respuesta

Cuestiones relacionadas