Arbeiten mit Teilweise Blick auf die in ASP.NET MVC

Hintergrund

Ich erhalte die folgende Fehlermeldung, wenn Sie versuchen zu machen eine Teilansicht in ASP.NET MVC. Ich bin neu ASP.NET MVC und bin sicher, der Fehler ist einfach zu beheben und nur stammt aus meiner fehlen vollständig zu verstehen.

Frage (für diejenigen, die nicht wollen, um alles zu Lesen):

Was verursacht diesen Fehler ?

Exception Details:
System.InvalidOperationException:
Das Modell-Element übergeben, in der
Wörterbuch ist vom Typ
'MyApp.Models.ClassroomFormViewModel'
aber dieses Wörterbuch benötigt ein Modell
item vom Typ
'System.Collections.Generic.IEnumerable1[MyApp.Modelle.ClassroomFormViewModel]".


Entites

Habe ich zwei Personen, die eine Eltern/Kind-Beziehung.

Klassenzimmer StickyNote 
------------ ----------- 
Id 1 ----- Id 
Name \ Name 
(...) \ Inhalt 
---- * ClassroomID 

Modell

In der Model dem StickyNote Inhalte werden in einer anderen Tabelle zugegriffen (mit Linq-to-SQL durch die folgende Methode:

public IQueryable<StickyNote> GetStickyNotesByClassroom(Classroom classroom)
{
     return from stickynote in db.StickyNotes
            where stickynote.ClassroomID == classroom.ID
            select stickynote;
}

Fehler

Habe ich eine partial view für die Anzeige von StickyNote Inhalt, da es 'gehört' zum Klassenzimmer es auf. Das problem das ich laufen in ist, dass ich nicht in der Lage, um es anzuzeigen, und Sie erhalten die folgende Fehlermeldung:

Modell-Element übergeben, in der
Wörterbuch ist vom Typ:
'MyApp.Models.ClassroomFormViewModel'
aber dieses Wörterbuch benötigt ein Modell
item vom Typ
'System.Collections.Generic.IEnumerable1[MyApp.Modelle.ClassroomFormViewModel]".
Beschreibung: Eine nicht behandelte Ausnahme
ist aufgetreten während der Ausführung der
aktuellen web-Anfrage. Bitte überprüfen Sie die
Stapelüberwachung für weitere Informationen über
die Fehler und wo Sie Ihren Ursprung in
die code.

Exception Details:
System.InvalidOperationException:
Das Modell-Element übergeben, in der
Wörterbuch ist vom Typ
'MyApp.Models.ClassroomFormViewModel'
aber dieses Wörterbuch benötigt ein Modell
item vom Typ
'System.Collections.Generic.IEnumerable1[MyApp.Modelle.ClassroomFormViewModel]".

Teilansicht

Hier ist die partielle anzeigen-code:

<%@ Control Language="C#" Inherits="
System.Web.Mvc.ViewUserControl<IEnumerable<MyApp.Models.ClassroomFormViewModel>>" %>

    <table background="../../images/corkboard.jpg">

    <% foreach (var items in Model) { %>

        <tr>
        <% foreach (var item in items.StickyNotes) { %>
            <td><div class="sticky_note_container">

<!-- actually use a post it note here on the page -->
<div class="sticky_note">
<div class="sticky_note_content">
<!-- content of sticky note here -->
<% Html.ActionLink(item.Name, "ShowStickyNoteContent"); %>
<!-- end of content of sticky note -->
</div>
</div>
<div class="sticky_note_footer">&nbsp;</div>
<br clear="all" />
</div>
         </td>
      <% } %>
     </tr>
   <% } %>
</table>

Übergeordneten Ansicht

Ist und der code aus der anderen Ansicht, es ruft:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits=
"System.Web.Mvc.ViewPage<MyApp.Models.ClassroomFormViewModel>" %>
{...}
  <% 
     Html.RenderPartial("StickyNotes", Model);
  %>
Schreibe einen Kommentar