我知道这是一个非常简单的问题,但我是C#,ASP.NET MVC3和ADO.Net实体框架的新手,而我的朋友google对我帮助不大......
所以,我有两个实体:Post和Comments,它们之间有1-n关系。
我想以简单的形式在帖子上发表评论,并提供发布帖子ID的路线。
GET部分(id是帖子的id)
//
// GET: /Blog/Comment/5
public ActionResult Comment(int id)
{
Comment comment = new Comment();
comment.PostReference.EntityKey = new EntityKey("BlogEntities.Posts", "id", id);
return View(comment);
}
POST部分:
//
// POST: /Blog/Comment/5
[HttpPost]
public ActionResult Comment(Comment comment)
{
if (ModelState.IsValid)
{
db.Comments.AddObject(comment);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}
我在调试模式下进行了操作,并且在提交表单时,键显示为null。 如果我在HttpPost方法中设置postreference,它就可以正常工作,但此时我对id没有任何线索。 所以,我认为必须在GET部分设置......
或许我完全走错了方向?
感谢您的帮助。
答案 0 :(得分:0)
如前所述,完全愚蠢的问题......
//
// POST: /Blog/Comment/5
[HttpPost]
public ActionResult Comment(int id, Comment comment)
{
if (ModelState.IsValid)
{
db.Comments.AddObject(comment);
comment.PostReference.EntityKey = new EntityKey("BlogEntities.Posts", "id", id);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}
将id放在方法的arg中,然后在AddObject完成后设置引用......
希望它会像我一样帮助一些失落的鸟......