2010-03-10 1 views
5

Bảng sản phẩm Product Id Tên sản phẩmLàm cách nào để cập nhật một hoặc nhiều thực thể quan hệ từ cùng một chế độ xem?

Bảng Nhà cung cấp SupplierID ProductID SupplierName

Khi tôi tạo ra một sản phẩm mới, tôi muốn có một textbox để nhập vào một nhà cung cấp cũng như trên cùng một cái nhìn. Đây có phải là một thực hành tốt? Vì Sản phẩm có thể có nhiều Nhà cung cấp, tôi muốn có thể thêm nhiều Bản ghi nhà cung cấp hơn từ cùng một chế độ xem. Làm cách nào để làm điều đó?

Tôi đang cố gắng tìm ra những gì tôi đặt trong trang aspx?

Nếu tôi đặt một cái gì đó như <% = Html.TextBoxFor (model => model.Supplier)%> Tôi thấy một hộp văn bản với System.Data.Objects.DataClasses.EntityCollection`1 [MyProject.Mvc.Models.Supplier] trong đó.

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

Tóm lại, tôi muốn thêm Sản phẩm mới và trong Chế độ xem tạo sản phẩm, tôi muốn thêm Nhà cung cấp đầu tiên. Sau đó, có thể từ Chế độ xem Chỉnh sửa của Sản phẩm, tôi có thể thêm Nhà cung cấp bổ sung. Nhấp vào nội dung nào đó trên chế độ xem Chỉnh sửa sẽ hiển thị hộp văn bản để nhập Nhà cung cấp mới và khi gửi, nhà cung cấp sẽ cập nhật Nhà cung cấp cho Sản phẩm. Sản phẩm và Nhà cung cấp có mối quan hệ một đến nhiều. – Picflight

+0

Arghh! Tôi đang có một thời gian khó khăn bao quanh đầu của tôi xung quanh MVC. Nhiều lần tôi đã nghĩ đến việc thực hiện nó trong các Biểu mẫu Web nhưng tôi không muốn từ bỏ. – Picflight

Trả lời