Asp.net MVC3 评论显示用户名的问题。
现在的情况是这样:
三个表,一个文章个Article和评论表Comment,和用户表User
其中view中的代码如下,几个重要的地方我用红线标出来了。
其中的@item.User.UserName是取数据表User中的用户名值。
但是我在使用的过程中,如果用@item.User.UserName的话,会报如下错误:
与什么DataReader需要关闭。
如果我把@item.User.UserName注释掉的话,可以正常显示留 言内容。
而我目前的临时解决方法是在评论表加一个UserName字段,在添加评论的时候将用户名填入,但是这样会造成浪费Session,因为我在登陆成功后保存了Session["userid"]和Session["username"]二个Session。
所以在不在表Comment中加字段的情况下有没有更好的解决方法来取用户名?或者哪个var comlist 这里的代码要如何改进?
求方法。谢谢。新手,分不多。
------解决方案--------------------item.user又是另一个对象,你在for循环里面又开启了查询,所以要报错,你把查询comlist的时候变成一个tolist
------解决方案--------------------comlist只是一个查询,循环时,会去执行。
建议楼主 把model组织下,
比如:
C# code
public class ArticleModel
{
public Article Article{get;set;}
public List<Comment> Comments{get;set;}
}
------解决方案--------------------
var comlist= ViewBag.comment as IQueryable<blogs.models.comment>;
之处建议不要使用IQueryable