引用内置帐户UserId将模型分配为外键

时间:2012-06-11 16:12:27

标签: asp.net-mvc-3

在寻找已有问题的答案之后,我仍然有点困惑,因为我应该如何继续。我是MVC 3框架的新手,所以如果我听起来像一个涂料,我会道歉!!

好的,所以我创建了一个MVC 3互联网应用程序,创建了3个新的用户管理员,user1和user2。我已经为我的“帖子”创建了一个新模型和控制器,我可以添加,编辑和删除这些项目。我目前在posts表中有一个名为UserID的列。我希望自动填充当前的UsersID。我想我会在控制器中定义这个:

    [HttpPost]
    public ActionResult Create(Post post)
    {
        if (ModelState.IsValid)
        {

            public int User = System.Web.Security.Membership.GetUser(id);

            db.Posts.Add(post);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }

        return View(post);
    }

在模型中,这就是我目前所拥有的:

    public class Post
    {
        public int PostID { get; set; }
        public int UserID { get; set; }
        public string PostTitle { get; set; }
        public int PostType { get; set; }
        public string PostBody { get; set; }
        public string PostBlogTitle { get; set; }
        public string PostBlogURL { get; set; }
        public string PostCategory { get; set; }
        public string PostSEO { get; set; }
        public int PostStatus { get; set; }
    }

    public class PostDBContext : DbContext
    {
        public DbSet<Post> Posts { get; set; }
    }

我想用控制器中新定义的变量替换public int UserID { get; set; },但不知道在哪里/如何添加它。

1 个答案:

答案 0 :(得分:0)

我不清楚你想要达到的目标。您只是尝试将当前用户分配给模型,保存它然后将其传递回视图吗?

如果是这样,你可以这样做:

[HttpPost]
public ActionResult Create(Post post)
{
    if (ModelState.IsValid)
    {
        // Note: I'm assuming this actually works/returns an int
        public int User = System.Web.Security.Membership.GetUser(id);

        post.UserID = User;

        db.Posts.Add(post);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    return View(post);
}