0

在已经存在的问题中寻找答案之后,我仍然对应该如何进行感到有些困惑。我是 MVC 3 框架的新手,所以如果我听起来像个笨蛋,我道歉!

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

    [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; }用控制器中新定义的变量替换,但不确定在哪里/如何添加它。

4

1 回答 1

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);
}
于 2012-06-11T16:23:21.720 回答