2016-05-04 3 views
0

Vielen Dank im Voraus für die Hilfe.Das an das Wörterbuch übergebene Modellelement ist vom Typ List_1, aber für dieses Wörterbuch wird ein Modellelement des Typs IEnumerable benötigt

Neu bei MVC ist also wahrscheinlich einfach zu beantworten. Ich bekomme diesen Fehler und habe keine Ahnung was das bedeutet. Dies ist mein Code:

Meine Ansicht:

@model carBayWebsite.Models.WishList 

@{ 
    ViewBag.Title = "Create"; 
} 

<h2>Create</h2> 


@using (Html.BeginForm("Create", 
    "WishLists", 
    FormMethod.Post, 
    new { enctype = "multipart/form-data" })) 
{ 
@Html.AntiForgeryToken() 

<div class="form-horizontal"> 
    <h4>Add to WishList?</h4> 
    <hr /> 
    <p>Are you sure you want to add this to your Wish List?</p> 
    @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 

    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      @Html.HiddenFor(m => m.AdvertId) 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      @Html.HiddenFor(m => m.AdvertId) 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      <input type="submit" value="Add" class="btn btn-default"/> 
     </div> 
    </div> 
</div> 
} 

<div> 
@Html.ActionLink("Back to List", "Index") 
</div> 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 
} 

mein Controller

public class WishListsController : Controller 
{ 
    private Entities2 db = new Entities2(); 

    public ActionResult Index() 
    { 
     string userName = User.Identity.GetUserName(); 
     var wishlist = from ads in db.Adverts 
         join wish in db.WishLists 
         on ads.AdvertId equals wish.AdvertId 
         where wish.UserId.Contains(userName) 
         select wish; 

     return View(wishlist.ToList()); 
    } 

    // GET: WishLists/Details/5 
    public ActionResult Details(int? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 
     WishList wishList = db.WishLists.Find(id); 
     if (wishList == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(wishList); 
    } 

    public ActionResult Create(int? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 
     else 
     { 
     string usID = User.Identity.GetUserId().ToString(); 
     int adID = Convert.ToInt32(id); 
     WishList wishList = db.WishLists.Find(id); 
     ViewBag.userId = usID; 
     ViewBag.advertId = adID; 
      return View(wishList); 
     } 




    } 

    // POST: WishLists/Edit/5 
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598. 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create(WishList wishList) 
    { 
     if (ModelState.IsValid) 
     { 

      db.WishLists.Add(new WishList 
      { 
       UserId = ViewBag.userId, 
       AdvertId = Convert.ToInt32(ViewBag.advertID), 
      }); 
         try { 
         db.SaveChanges(); 
         } 

         catch (DbEntityValidationException dbEx) 
          { 
           foreach (var validationErrors in dbEx.EntityValidationErrors) 
           { 
            foreach (var validationError in validationErrors.ValidationErrors) 
            { 
             Trace.TraceInformation("Property: {0} Error: {1}", 
                   validationError.PropertyName, 
                   validationError.ErrorMessage); 
            } 
           } 
          } 


      return RedirectToAction("Index"); 
     } 
     return View(wishList); 


    } 

Könnte jemand herausfinden, was falsch ist weg? Wenn ich mich umsehe, fühle ich mich wie etwas, das so einfach ist wie das erste des View, aber ich kann es nicht festhalten! :)

Fehlerdetails

Der Artikel Modell in das Wörterbuch übergeben sind vom Typ ‚System.Collections.Generic.List1 [carBayWebsite.Models.Advert]‘, aber dieses Wörterbuch erfordert ein Modell Artikel vom Typ 'System.Collections.Generic.IEnumerable1 [carBayWebsite.Models.WishList]

+0

Ich übermittelte die Ansicht – MaxEccles

+0

In der Fehlermeldung, was sind die generischen Typparameter 'List ' und 'IEnumerable '? Sind "T1" und "T2" gleich? – erdinger

+0

@zgoog nein es sagt wishList enthält keine Definition für ToList, wenn ich das in – MaxEccles

Antwort

0

Die Ansicht, die Sie uns gezeigt, ist Create denke ich. (Weil-Header 'Create')

Sie passieren zu Create Ansicht whis hList, welche Art von WhisList ist return View(wishList);

Aber Ihre Ansicht wartet auf Advert zu Beginn Ihrer Ansicht: @model carBayWebsite.Models.Advert

Ich denke, das ist das Problem. Lass es mich wissen, wenn es nicht ist.

+0

Sie hatten absolut Recht, dass es falsch war, aber das Es war ein Fehler von mir, es früher zu beheben. Total vergessen, es zurück zu ändern. Der Fehler ist immer noch der gleiche! – MaxEccles

Verwandte Themen