我不确定如何处理创建具有外键的模型。我必须将外键传递给模型,但我不确定处理此问题的最佳方法。
如果您使用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字段中?
我能想到的选择。
在帖子中获取博客ID获取创建并在ViewBag中传递。
添加额外的路由规则,使其类似于blog / 2 / post / create / 3,然后以某种方式获取2并将其用作 blogId
是上述最佳做法之一还是我不知道的其他选择?
答案 0 :(得分:0)
在您的工作流程中,创建博客文章将在选择博客后完成。因此,您可以更改URL以将其作为查询字符串变量
/post/create?blogId=1
发布控制器中的创建操作将如下所示
[HttpGet]
public AcionResult Create(int blogId ){
var post=new Post{BlogId=blogId}
return view (post);
}
我认为这是最简单,最干净的方法。