2009-04-22 58 views
0

我有一個簡單的結構ASP.NET MVC,跨親子LINQ2SQL實體簡單的創建頁面

小工具(父表)

  • ID(身份)

  • 標題

Widg etChild(子表) -

  • ID(外鍵widget.id)
  • 內容

在我查看我有一個場捕獲的稱號,而另一個場捕獲內容值。

<%= Html.TextBox("title") %> 

<%= Html.TextBox("content") %> 

我如何去連接最多我控制器先插入一個新進入的Widget,然後插入一個進入WidgetChild?我不知道如何去做這件事..我傳遞一個FormCollection實例,手動實例化Widget實例並傳入值?或者我可以使用UpdateModel()嗎?我不熟悉UpdateModel如何綁定我的表單值,特別是如果它們跨越多個表/類。

回答

1

您可以在這裏使用自動模型綁定。

有了這樣的形式:

<%using(Html.BeginForm("Update", "Home")) {%> 
    <%=Html.TextBox("widget.Title") %> 
    <%=Html.TextBox("childWidget.Content") %> 
    <input type="submit" value="Submit" /> 
    <%} %> 

你的控制器就可以是這樣的:

public ActionResult Update(Widget widget, WidgetChild childWidget) 
{ 
    // do whatever with the objects here 
} 

的對象將有來自填充有(標題爲插件的形式性質和內容對於childWidget) - 那麼你可以將這些對象相互關聯,並以正常的方式將它們保存到你的LINQ到sql數據上下文中。

0

您需要根據數據庫結構區分兩個進程。你可以使用嚮導步驟。檢查這個link

第二種方法是手動進行。 像在頁面提交你會得到所有頁面數據的行動方法,接受後動詞,權利。現在,您可以在填寫必填字段的父表中進行輸入,然後立即獲取相同的記錄以獲取主鍵。最後,您可以使用父表ID在子表中輸入數據。

難道你不覺得這個過程很頭疼!在另一個視圖中添加子內容會更好,您可以在其中顯示窗口小部件父項的下拉列表,然後添加內容。