使用外键mvc4 asp.net创建模型

时间:2012-12-19 20:58:50

标签: entity-framework asp.net-mvc-4

我不确定如何处理创建具有外键的模型。我必须将外键传递给模型,但我不确定处理此问题的最佳方法。

如果您使用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,以便将其保存在Post BlogId字段中?

我能想到的选择。

  1. 在帖子中获取博客ID获取创建并在ViewBag中传递。

  2. 添加额外的路由规则,使其类似于blog / 2 / post / create / 3,然后以某种方式获取2并将其用作 blogId

  3. 在会话变量中设置BlogId并将其设置为Post创建控制器中的帖子。
  4. 是上述最佳做法之一还是我不知道的其他选择?

1 个答案:

答案 0 :(得分:0)

在您的工作流程中,创建博客文章将在选择博客后完成。因此,您可以更改URL以将其作为查询字符串变量

/post/create?blogId=1

发布控制器中的创建操作将如下所示

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

我认为这是最简单,最干净的方法。