2017-01-22 5 views
0

Ich erhalte die folgenden Exception von der View.Es gibt kein ViewData-Element vom Typ 'IEnumerable' mit dem Schlüssel

Eine Ausnahme des Typs ‚System.InvalidOperationException‘ aufgetreten in System.Web.Mvc.dll wurde aber in Benutzercode

Zusätzliche Informationen nicht behandelt: Es gibt keinen Viewdata Artikel vom Typ ‚IEnumerable‘ das hat den Schlüssel 'Profile_Id'.

Von Ansicht

@Html.DropDownList("Profile_Id", String.Empty) 

-Controller

public ViewResult Index(string name, string Profile_Id, int? page) 
{ 

    ... 
    ViewBag.Profile_Id = new SelectList(db.PROFILE.Where(y => y.ID== myId), "Profile_Id", "Name"); 

    return View(prof.ToPagedList(pageNumber, pageSize)); 
} 

Antwort

2

Ich nehme an, dass Sie nicht immer diese Fehlermeldung zum ersten Mal diese Ansicht von der GET/Index Aktion gemacht wird, aber Wenn Sie das entsprechende Formular an Ihre POST-Aktion senden, die dieselbe Ansicht rendert.

Um diesen Fehler stellen Sie sicher, zu beheben, dass in Ihrer POST Aktion Sie auch die Profile_Id Eigenschaft füllen, wie Sie in der GET-Aktion haben, wenn Sie die gleiche Ansicht zu machen beabsichtigen, weil es davon abhängt:

[HttpPost] 
public ActionResult Index(MyViewModel model) 
{ 
    ... process the data 

    // populate the Profile_Id property because we are 
    // redisplaying the same view which depends on it in order 
    // to show the corresponding dropdown 
    ViewBag.Profile_Id = new SelectList(db.PROFILE.Where(y => y.ID== myId), "Profile_Id", "Name"); 

    return View(model); 
} 
+0

Lass mich das ausprobieren. Wie auch immer, du hast ein unglaubliches Profil. – Illep

Verwandte Themen