【发布时间】:2016-10-02 06:06:53
【问题描述】:
我有一个返回消息列表的控制器
public ActionResult MainMenu()
{
var myDataOp = new DataBaseOperations();
var Message=myDataOp.GetMessages();
return View(Message);
}
这是获取列表的函数
public List<ViewClass> GetMessages()
{
PrincelysDataContext pData = new PrincelysDataContext();
Princelys.Models.ViewClass myViewList =new ViewClass();
var myMessage =from r in pData.Messages select r;
DateTime presentTime = new DateTime();
foreach (var myValues in myMessage)
{
myViewList.myMessage.Add(new ViewClass
{
CreatedName ="ffff",// (from m in pData.Users where m.userid == myValues.createdBy select m.userName).Single(),
Messages = myValues.Message,
CreateOn = myValues.createddatetime.Subtract(presentTime)
});
}
return myViewList.myMessage;
}
然后我在查看页面中使用我的列表。
@model Princelys.Models.ViewClass
....
@foreach (var messageValues in Model.myMessage)
{
<li class="left clearfix">
<span class="chat-img pull-left">
<img src="http://placehold.it/80/30a5ff/fff" alt="User Avatar" class="img-circle" />
</span>
<div class="chat-body clearfix">
<div class="header">
<strong class="primary-font">@messageValues.CreatedName</strong> <small class="text-muted">@messageValues.CreateOn.TotalHours mins ago</small>
</div>
<p>
@messageValues.Messages
</p>
</div>
</li>
}
在浏览器上运行查看页面时出现错误
传入字典的模型项的类型为“System.Collections.Generic.List`1[Princelys.Models.ViewClass]”,但此字典需要类型为“Princelys.Models.ViewClass”的模型项。
这是保存属性的类
public class ViewClass
{
public ViewClass()
{ myMessage = new List<ViewClass>(); }
public string CreatedName { get; set; }
public string Messages { get; set; }
public TimeSpan CreateOn { get; set; }
public List<ViewClass> myMessage;
}
这是我的第一个 MVC 5 项目。任何帮助将不胜感激。
【问题讨论】:
-
我对模型的声明是:@model Princelys.Models.ViewClass
-
该消息是不言自明的。您将
List<ViewClass>传递到一个需要单个ViewClass的视图。更改其中一个或另一个以使其匹配 -
您没有提供有关视图呈现内容的足够信息,但我怀疑您的方法需要是
public ViewClass GetMessages(),其中包含return myViewList;(而不是return myViewList.myMessage;) -
谢谢,你说的改变我的方法是正确的,节省了很多时间。谢谢斯蒂芬
标签: c# asp.net-mvc entity-framework asp.net-mvc-5