2010-04-26 47 views
1

開始於:使用Entity Framework v4.0。 ASP.NET MVC 2.0。 Visual Studio 2010.簡單地使用ASP.NET MVC綁定實體框架集合

我有一個模型,只是由訂單&訂單項組成。我想要做的就是儘可能簡單地綁定該模型(避免使用類型轉換器等)。 簡單的模型是這樣的:

public class Order { 
    public int ID { get; set; } 
    public string OrderNumber { get; set; } 
    public EntityCollection<OrderItem> Items { get; set; } 
} 
public class OrderItem { 
    public int ID { get; set; } 
    public string Qty { get; set; } 
} 

,因爲我想保留它這是一樣簡單。該模型直接來自實體框架生成器生成的代碼。我寧願直接從實體框架中使用模型(我知道有些人認爲這是一件壞事,但可惜)。然後我看到這樣的看法:

<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true) %> 
    <fieldset> 
     <legend>Fields</legend> 
     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.ID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.ID) %> 
      <%: Html.ValidationMessageFor(model => model.ID) %> 
     </div> 
     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.OrderNumber) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.OrderNumber)%> 
      <%: Html.ValidationMessageFor(model => model.OrderNumber)%> 
     </div> 
     <div id="lineItems"> 
      Where I need to put my line items to be edited, inserted 
     </div> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
<% } %> 

我想要做的是有一種情況,我可以使用動態行項目(使用JavaScript)。 問題是這樣的:

  1. 如何去插入初始行項目(在lineItems div內)。這需要強類型化並使用MVC的內置驗證框架。
  2. 最好的方式去動態插入行項目,以便回發時有一個完整的綁定到模型沒有太多的混亂(id = 1,2,3,4等)。

任何幫助,例子,技巧等將不勝感激。

回答

1

史蒂夫桑德森寫了一個不錯的blog post這應該是對你的情況有幫助。

+0

我同意,我已閱讀並在我的web項目中爲模型實現了該帖子。但是,我想盡可能使用實體框架模型。 – Joe 2010-04-27 01:45:10