我正在尝试自学 C# 和 MVC 3。
我通过创建一个简单的博客应用程序来学习。我被困在博客的详细信息页面。此页面显示帖子并且工作正常 - 即显示帖子和帖子上的评论。但是,我想添加一个表单来添加新评论。
我认为这样做的方法是创建一个包含博客和评论类的视图模型,然后我应该能够创建一个调用评论控制器的创建操作的评论表单。
但是,当我这样做时,博客显示页面不会显示,因为它需要一个“BlogDetailViewModel”类型的模型。我猜这是因为“博客”控制器的“详细信息”操作将“博客”模型传递给视图,而不是“博客详细视图模型”。我该如何纠正这个错误。
这是处理这个问题的最好方法吗。
我正在详细说明以下所有代码:
博客控制器 - 详细信息方法
public ViewResult Details(int id)
{
Blog blog = db.Blogs.Find(id);
return View(blog);
}
博客.cs
public class Blog
{
public int BlogID { get; set; }
public string Title { get; set; }
public string Writer { get; set; }
[DataType(DataType.MultilineText)]
public string Excerpt { get; set; }
[DataType(DataType.MultilineText)]
public string Content { get; set; }
[DataType(DataType.Date)]
public DateTime PublishDate { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
评论.cs
public class Comment
{
public int CommentID { get; set; }
public string Name { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[DataType(DataType.MultilineText)]
public string CommentBody { get; set; }
public int BlogID { get; set; }
public virtual Blog Blog { get; set; }
}
BlogDetailViewModel.cs
public BlogDetailViewModel
{
public Blog Blog{ get; set; }
public Comment comment{ get; set; }
}
博客详情视图
@model NPLHBlog.ViewModels.BlogDetailViewModel
@{
ViewBag.Title = @Model.Blog.Title;
}
……
我试图从博客详细信息视图中评论所有内容并保留标题。然而,即使这样也行不通。
任何帮助将不胜感激。