日期:2014-05-18  浏览次数:20472 次

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