2010-03-10 1 views
5

Tabela wyrobów ID produktu Nazwa wyrobówJak zaktualizować jeden do wielu encji relacji z tego samego widoku?

Tabela Dostawca SupplierId ProductId SupplierName

Kiedy tworzę nowy produkt, Chcę mieć pole tekstowe, aby wprowadzić dostawcę, jak również na ten sam widok. Czy to dobra praktyka? Ponieważ produkt może mieć wielu Dostawców, chcę móc dodawać więcej rekordów dostawcy z tego samego widoku. Jak to zrobić??

Próbuję dowiedzieć się, co mam umieścić na stronie aspx?

Jeśli mogę umieścić coś takiego <% = Html.TextBoxFor (model => model.Supplier)%> Widzę tekstowe z System.Data.Objects.DataClasses.EntityCollection`1 [MyProject.Mvc.Models.Supplier] w tym.

<%@ 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

Krótko mówiąc, chcę dodać nowy produkt i w widoku tworzenia produktu chcę dodać pierwszego dostawcę. Następnie prawdopodobnie z Edycji Widoku Produktu powinienem móc dodać kolejnych Dostawców. Kliknięcie czegoś w widoku Edytuj spowoduje wyświetlenie pola tekstowego w celu wprowadzenia nowego dostawcy, a po jego przesłaniu zaktualizuje dostawcę dla produktu. Produkt i dostawca mają relację jeden do wielu. – Picflight

+0

Arghh! Mam tak ciężki czas owijając głowę wokół MVC. Wiele razy myślałem o zrobieniu tego w Web Forms, ale nie chcę się poddawać. – Picflight

Odpowiedz