0
我收到一個錯誤說:傳遞到字典的模型項的類型爲「System.Data.Linq.DataQuery`1 [Models.MailListViewModel]」
傳遞到字典的模型產品類型'System.Data.Linq.DataQuery`1 [WebUI.Models.MailListViewModel]',但是這個字典需要一個類型爲'WebUI.Models.MailListViewModel'的模型項。
這是在我的控制器:
public ViewResult List()
{ var mailToShow = from m in mailRepository.Mail
join p in profilesRepository.Profiles on m.SenderId equals p.ProfileId
select new MailListViewModel
{
SenderId = m.SenderId,
ProfileId = p.ProfileId,
UserName = p.UserName,
Subject = m.Subject
};
return View(mailToShow);
}
這是我MailListViewModel:
public class MailListViewModel
{
public int SenderId;
public int ProfileId;
public string UserName;
public string Subject;
}
這是我的看法:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<WebUI.Models.MailListViewModel>" %>
<% foreach (var m in (IEnumerable)Model)
{ %>
<tr>
<td>
</td>
<td>TODO image</td>
<td>
<%: Model.SenderId %></td>
<td><%: Model.Subject%></td>
</tr>
<% } %>
錯誤消息似乎有衝突,說我正在使用正確的模式。
我該怎麼辦?
很好,現在幾乎在工作! 我更新了視圖之後,我收到了以下消息: CS1061:'object'不包含'Subject'的定義,並且沒有可以找到接受類型'object'的第一個參數的擴展方法'Subject'缺少using指令或程序集引用) ,他們強調: <%:m.Subject%> 智能感知說: 無法解析符號「主題」 我應該嘗試下? – Castielle 2010-08-24 10:19:53
如果您仍將模型轉換爲IEnumerable,則可能是這種情況。我相應地更新了我的答案。 – 2010-08-24 10:37:13
Closer :)現在我收到一條錯誤消息: 「查詢包含對在不同數據上下文中定義的項目的引用。」 它指的是:「<%foreach(模型中的變量)」 – Castielle 2010-08-24 10:51:58