2012-06-11 4 views
0

이미 존재하는 질문에 대한 답을 찾은 후에 진행 방법을 조금 혼란스럽게 생각합니다. MVC 3 프레임웍에 익숙하지 않아, 마약처럼 들릴 때, 나는 사과한다 !!참조 내장 계정 사용자 ID 모델에 외래 키로 할당

좋아, MVC 3 인터넷 응용 프로그램을 만들었으므로 3 명의 새로운 사용자 관리자 인 user1과 user2가 생성되었습니다. 나는 새로운 모델을 만들었고 컨트롤러는 내 "게시물"을 추가, 편집 및 삭제할 수 있습니다. 현재 내 게시물 테이블에 UserID라는 열이 있습니다. 현재 UsersID가 자동으로 채워지도록하겠습니다. 나는이 같은 컨트롤러에서이 정의 것이라고 생각 :

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; }을 대체하려는 : 모델 내부

[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); 
    } 

, 이것은 내가 현재 가지고있는 것입니다 컨트롤러,하지만 그것을 추가하는 방법/확실하지 않습니다.

+0

당신이 게시 할 때 사용자 ID 정보는 뷰 모델에 저장되며,이 데이터베이스에 저장된 얻을 않을 경우 다시 확인합니다? –

+0

현재 내 견해로는 수동으로 userId를 입력하고 저장합니다. 나는이 코드를'public int User = System.Web.Security.Membership.GetUser (id);'라는 코드에 추가했고 아직 테스트하지 않았다. 왜냐하면 모델에서 뭔가를 변경해야한다는 것을 알고 있기 때문이다. –

답변

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); 
} 
+0

맞습니다, 그 중 하나가 작동하는지, 나도 몰라 다른 stackoverflow 대답에서 찾은 것입니다. 현재 추가 된 게시물에 현재 사용자 ID를 지정하고 싶지만 그 위치를 알지 못합니다. –

+0

'System.Web.Security.Membership.GetUser (ID)'가 필요한 값을 반환하면 내가 게시 한 코드가 작동합니다. ID를 가져올 위치를 묻는다면 다른 이야기입니다. – Terry

+0

모델에서 아무 것도 변경할 필요가 없습니까? –