2016-04-06 9 views
-2

Ich kann nicht verstehen, warum ich diesen Fehler, weil, was ich versuche ziemlich einfach zu tun sein sollte:MVC - Das Element-Modell in das Wörterbuch übergeben ist vom Typ .. aber dieses Wörterbuch erfordert ein Modell Artikel vom Typ

Das an das Wörterbuch übergebene Modellelement ist vom Typ 'System.Collections.Generic.List`1 [Interface.Models.UserAccount]', aber für dieses Wörterbuch wird ein Modellelement vom Typ 'Interface.Models.UserAccount' benötigt.

Index.cshtml

@model Interface.Models.UserAccount 

@{ 
    ViewBag.Title = "Home Page"; 
} 

<h2>Register</h2> 

@using (Html.BeginForm()) 
{ 
@Html.AntiForgeryToken() 

<div class="form-horizontal"> 
    <h4>Create an Account</h4> 
    <hr /> 
    @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
    <div class="form-group"> 
     @Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control" } }) 
      @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

HomeController.cs

namespace Interface.Controllers 
{ 
    public class HomeController : Controller 
    { 
     // GET: Account 
     public ActionResult Index() 
     { 
     SqlConnection con = new  SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString); 
      MyDB db = new MyDB(); 
      { 
      return View(db.userAccount.ToList()); 
      } 
     } 
     [HttpPost] 
     public ActionResult Index(UserAccount account) 
     { 
     if (ModelState.IsValid) 
     { 
      MyDB db = new MyDB(); 
      { 
       db.userAccount.Add(account); 
       db.SaveChanges(); 
      } 
      ModelState.Clear(); 
      ViewBag.Message = account.FirstName + " " + account.LastName + "successfully registered."; 
     } 
     return View(); 
    } 

Das Original/Home/Index-Seite für meine Anwendung überflüssig war, so was ich versucht habe zu tun war, ersetzen/Konto/Registrieren Sie sich so, dass/Account/Register eigentlich nur/Home/Index ist.

Das Problem liegt darin, wo es Elemente zurückgibt, die Teil einer Ansicht waren, und es mag es nicht.

Wie kann ich Änderungen vornehmen, damit diese Seite korrekt geladen wird? Ich sehe viele ähnliche Ergebnisse, aber sie haben IEnumerable in ihrem Code, wenn ich nicht

+0

Die Nachricht ist selbsterklärend. Sie haben '@model UserAccount' (ein einzelnes Objekt) angezeigt, aber Ihre Controller-Methode gibt eine Auflistung von Objekten zurück –

Antwort

0

Sie passieren Liste der Benutzerkonten anstelle von einzelnen Benutzerkonto Sie sollten nur ein Benutzerkonto, zum Beispiel passieren:

db.userAccount.ToList().First() 
Verwandte Themen