我目前为博客设置了 ViewModel:
public class PostViewModel
{
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public string Content { get; set; }
public int CommentCount { get; set; }
public ICollection<Topic> Topics { get; set; }
public ICollection<Comment> Comments { get; set; }
}
与控制器完美配合:
private MyDB db = new MyDB();
public ActionResult Index()
{
var posts = (from p in db.Set<BlogPost>()
select new PostViewModel
{
Title = p.Title,
DateCreated = p.DateCreated,
Content = p.Content,
Topics = p.Topics,
Comments = p.Comments,
CommentCount = p.Comments.Count
}).ToList();
return View(posts);
}
鉴于这两个部分,我可以遍历列表并生成带有相应评论和主题的博客文章。但是,我希望在其中包含主题列表的一侧有一个下拉列表。我猜我也需要改变我的 ViewModel 和 HomeController,但我只是不确定如何去做。
@Html.DropDownListFor(???????)
然后会进入我的Index.cshtml,但我不知道当其他所有内容都以列表形式出现时我会如何处理?