【发布时间】:2014-01-10 12:19:32
【问题描述】:
首先,我想向您展示我的模型。
public class Blog
{
[Key]
public int BlogID { get; set; }
public System.Nullable <DateTime> LastModified { get; set; }
public System.Nullable<int> AidID { get; set; }
public virtual BlogAid BlogAid{ get; set; }
public System.Nullable<int> AuthorID { get; set; }
public virtual BlogAuthor BlogAuthor { get; set; }
public System.Nullable<int> CommentID { get; set; }
public virtual ICollection<BlogComment> BlogComment { get; set; }
public System.Nullable<int> TitleID { get; set; }
public virtual BlogTitle BlogTitle { get; set; }
public System.Nullable<int> ContentID { get; set; }
public virtual BlogContent BlogContent { get; set; }
public System.Nullable<int> NewsID { get; set; }
public virtual BlogNews BlogNews { get; set; }
}
尤其是这一行:
public virtual ICollection<BlogComment> BlogComment { get; set; }
这意味着我的博客和cmets之间是一对多的关系,那么看看我的控制器:
var comments = from c in DB.BlogCommenttbl
join b in DB.Blogtbl on c.BlogID equals b.BlogID
where c.CommentID > 0
select new
{ Comments = c.Comments, LastModified=c.LastModifed};
if (comments.FirstOrDefault() !=null)
{
bpm.Blogs.BlogComment = new List<BlogComment>();
foreach (var item in comments.ToList())
{
bpm.Blogs.BlogComment.Add(new BlogComment{Comments=item.Comments, LastModifed=item.LastModified});
}
}
视图是
@foreach (var item in Model.Blogs.BlogComment)
{
<h3>Start Bootstrap <small>@Html.DisplayText(item.LastModifed.ToString())</small></h3>
<p>@Html.DisplayText(item.Comments.ToString())</p>
}
但我收到了Object reference not set to an instance of an object. 错误。
然后我调试了代码,发现
bpm.Blogs.BlogComment = new List<BlogComment>();
无法正常工作,我该如何修复这个错误?或者处理这个问题?
【问题讨论】:
-
'不能工作'是什么意思?例外?
-
您的
bpm.Blogs是null,因此您无法访问bpm.Blogs.BlogComment。我认为您可以使用bpm.Blogs = new Blog()修复它。
标签: c# asp.net-mvc c#-4.0 icollection