2012-12-19 123 views
0

我不確定如何處理創建具有外鍵的模型。我必須將外鍵傳遞給模型,但我不確定如何處理這個問題。使用外鍵創建模型mvc4 asp.net

如果使用從entity framework documentation的博客/後例子:

您將通過您的文章模型視圖:

@model BlogApp.Models.Post 

部分保存模型在BlogId推杆,這將是一個隱藏的領域,但在概念上:

<div class="editor-label"> 
    @Html.LabelFor(model => model.BlogId) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.BlogId) 
    @Html.ValidationMessageFor(model => model.BlogId) 
</div> 

如何從目前的博客模式通過博客ID,因此它可以被保存在後場BlogId?

我能想到的選項。

  1. 獲得職位的博客ID獲取創建和傳遞,在ViewBag。

  2. 添加額外的路由規則,它是像博客/ 2 /後/創建/ 3,然後以某種方式獲取2,並用它作爲 blogId

  3. 設置BlogId在會話變量,並將其設置用於Post創建控制器中的帖子。

是上述最佳實踐之一還是有不同的選擇,我不知道?

回答

0

在您的工作流程中,創建博客文章將在選擇博客後完成。所以,你可以更改URL,以有作爲查詢字符串變量,

/post/create?blogId=1 

創建於控制器將這個樣子行動,

[HttpGet] 
    public AcionResult Create(int blogId){ 
     var post=new Post{BlogId=blogId} 
     return view (post); 
    } 

我覺得這是最簡單的並以乾淨的方式來做到這一點。