2012-12-19 82 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); 
    } 

我觉得这是最简单的并以干净的方式来做到这一点。