2012-06-18 6 views
0

아주 간단한 질문이지만 C#, ASP.NET MVC3 및 ADO.Net Entity Framework의 초보자이며 제 친구 인 Google이 나에게 많은 도움이되지 않았다는 것을 알고 있습니다 ...GET 액션에서 엔티티 키 설정하기

그래서 두 개의 엔티티가 있습니다. 포스트와 주석이 있고 그 사이에 1-n 관계가 있습니다.

게시물의 ID를 제공하는 경로가있는 간단한 양식으로 게시물에 대한 의견을 게시하고 싶습니다.

가져 오기 부분 (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

GET 매개 변수의 핵심은 무엇입니까? 페이지가/Blog/Comment/n으로 제출됩니까? – glenatron

+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를 퍼팅, 그리고 AddObject 트릭을 한 후 다음의 기준을 설정 ...

그것이 바랍니다, 전에 말했듯 나를 잃은 새들을 도와주세요 ...

관련 문제