코드를 사용하여 MVC3에 대한 자습서를 먼저 작성하고 있습니다. 기본적으로 나는 3 개 테이블, 게시물, 댓글 및 ASP.NET MVC3 보조 테이블에서 제목 이름 표시
public class Blog
{
public int ID { get; set; }
public string Title { get; set; }
public string BloggerName { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
public class Comment
{
public int ID { get; set; }
public DateTime DateCreated { get; set; }
public string Content { get; set; }
public int PostID { get; set; }
public Post Post { get; set; }
}
public class Post
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public string Content { get; set; }
public int BlogID { get; set; }
public ICollection<Comment> Comments { get; set; }
}
블로그
을 그리고 나는 BlogID이있는 포스트 페이지에 게시물을 표시합니다. 그래서 순간에 내 컨트롤러에서 나는 다음과 같습니다 -보기는 다음을 갖는 public ViewResult Index()
{
PostViewModel model = new PostViewModel();
model.Posts = db.Posts.ToList();
foreach (var item in model.Posts)
{
model.Blog = db.Blogs.Where(b => b.ID == item.BlogID).FirstOrDefault();
}
return View(model);
}
: -
@foreach (var item in Model.Posts) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.DateCreated)
</td>
<td>
@Html.DisplayFor(modelItem => item.Content)
</td>
<td>
@Html.DisplayFor(modelItem => modelItem.Blog.Title)
</td>
</tr>
}
는 내가 알고 싶은 것은 활용하는 방법입니다 게시물에서 블로그 제목. 무엇을 이것을 다음으로 대체해야합니까? -
foreach (var item in model.Posts)
{
model.Blog = db.Blogs.Where(b => b.ID == item.BlogID).FirstOrDefault();
}
작동하려면 어떻게해야합니까? 당신은 직접 블로그 엔티티가 나는 당신이 단지 하나의 블로그로 모델의 Blog
속성을 설정해야합니다 같은데요
foreach (var post in model.Posts)
{
post.Blog = db.Blogs.FirstOrDefault(b => b.ID == item.BlogID);
}
안녕하세요. Bogdan 님, 답변을 드리겠습니다. 효과가 있기 때문입니다. Post 클래스의 Blog에 대한 참조를 추가하고 싶지는 않았지만 Blog 클래스의 Post에 대한 참조가 이미 있지만 나중에는 괜찮다고 생각합니다. – Johann