如何通过asp.net mvc4中的CRUD传递参数?

时间:2014-01-05 23:47:35

标签: asp.net-mvc-4 parameters parameter-passing crud

我想在我的论坛项目中向帖子添加帖子,但为了这样做,我需要传递一个带有线程ID的参数,所以在创建帖子之后它会将我重定向回那个特定的线程,但问题是我有不知道如何传递该参数......

这是我的Create()代码:

// GET: /Posts/Create   
public ActionResult Create(int id)
{
    ViewBag.ThreadId = new SelectList(db.Albums, "ThreadId", "Title");
    ViewBag.IdOfThread = id;
    return View();
}

//
// POST: /Posts/Create    
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Posts posts)
{
    if (ModelState.IsValid)
    {
        db.Posts.Add(posts);
        db.SaveChanges();
        return RedirectToAction("Index", new { **id = 5** });
    }

    ViewBag.ThreadId = new SelectList(db.Albums, "ThreadId", "Title", posts.ThreadId);
    //ViewBag.IdOfThread = id;
    return View(posts);
}

当我强烈输入数字id = 5时,它按预期工作,那么如何让ActionResult Create(Posts posts)从创建视图中查看我的ViewBox?或者,如果不使用ViewBox,可能有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

当您向实体添加模型并调用SaveChanges()时,通过EF的荣耀,它会自动将ID重新放入模型中。

    if (ModelState.IsValid)
    {
        db.Posts.Add(posts);
        db.SaveChanges();

        // Replace Id with whatever your auto increment PK is.
        return RedirectToAction("Index", new { id = posts.Id }); 
    }