Das Modell-Element, übergeben das Wörterbuch ist vom Typ 'System.Daten.Linq -.DataQuery`1[Modelle.MailListViewModel]'
Bin ich immer die Fehlermeldung:
Den Modell-Element, übergeben das Wörterbuch ist vom Typ 'System.Daten.Linq -.DataQuery`1[WebUI.Modelle.MailListViewModel]', sondern dieses Wörterbuch erfordert ein modellelement des Typs " WebUI.Modelle.MailListViewModel'.
Dies ist in meinem controller:
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);
}
Dies ist in meinen MailListViewModel:
public class MailListViewModel
{
public int SenderId;
public int ProfileId;
public string UserName;
public string Subject;
}
Dies ist meiner Ansicht nach:
<%@ 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>
<% } %>
Die Fehlermeldung scheint zu sein, widersprüchliche, zu sagen, dass ich das richtige Modell.
Was soll ich tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Abfrage zurückgeben
IQueryable<MailListViewModel>
im wesentlichen eineMailListViewModel
für jedes Ergebnis in der Abfrage. Ihre Ansicht ist, erwartet nur eine einzigeMailListViewModel
.Sollten Sie aktualisieren Sie Ihre Ansicht zu erwarten
IEnumerable<MailListViewModel>
etwa so:Auch, wenn Sie das getan haben, sollten Sie nicht wirken, die
Model
zuIEnumerable
als führen, in der jedes Element in der Aufzählung behandelt wird als Typobject
so wird es erscheinen, als ob keine Ihrer Eigenschaften vorhanden sind.