0

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

如果您使用实体框架文档中的博客/帖子示例:

您会将您的帖子模型传递给您的视图:

@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 Get create 并将其传递到 ViewBag 中。

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

  3. 在会话变量中设置 BlogId 并为 Post 创建控制器中的帖子设置它。

是上述最佳实践之一还是我不知道有其他选择?

4

1 回答 1

0

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

/post/create?blogId=1

Post控制器中的Create操作将如下所示,

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

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

于 2012-12-20T03:59:44.007 回答