Comment réparer L'élément de modèle adopté dans le dictionnaire est de type erreur?

Je suis en train de lancer mon premier ASP.NET application MVC. J'ai créé un cotroller et la vue. Les données sont prises à partir de la Base de données. Toutefois, lorsque le projet peut courir, mais quand j'essaie de naviguer à la Clientèle page-je obtenir de l'erreur ci-dessous.

L'élément de modèle adopté dans le dictionnaire est de type
'Système.Les Collections.Génériques.Liste`1[MvcApplication3.Modèles.Client]',
mais ce dictionnaire nécessite un élément de modèle de type
'MvcApplication3.Modèles.Client".

Je suis un peu confus ici, comme d'erreur dit qu'il a demander le type de modèle.

Trace de la pile est

Trace De La Pile:

[InvalidOperationException: L'élément de modèle adopté dans le dictionnaire
est de type
'Système.Les Collections.Génériques.Liste1[MvcApplication3.Models.Customer]',
but this dictionary requires a model item of type
'MvcApplication3.Models.Customer'.]
System.Web.Mvc.ViewDataDictionary
1.SetModel(la valeur de l'Objet) +585211
Système.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionnaire)
+371 Système.Web.Mvc.ViewPage1.SetViewData(ViewDataDictionary viewData) +48 System.Web.Mvc.WebFormView.RenderViewPage(ViewContext
context, ViewPage page) +73
System.Web.Mvc.WebFormView.RenderView(ViewContext viewContext,
TextWriter writer, Object instance) +38
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext
viewContext, TextWriter writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
+295 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext
controllerContext, ActionResult actionResult) +13
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17()
+23 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter
filter, ResultExecutingContext preContext, Func
1 suite) +242
Système.Web.Mvc.<>c_DisplayClass1c.b_19()
+21 Système.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext
controllerContext, IList1 filters, ActionResult actionResult) +177
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20()
+89 System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult
asyncResult) +102 System.Web.Mvc.Async.WrappedAsyncResult
1.Fin (la)
+57 Système.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult
asyncResult) +43
Système.Web.Mvc.<>c_DisplayClass1d.b_18(IAsyncResult
asyncResult) +14
Système.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult
ar) +23 Système.Web.Mvc.Async.WrappedAsyncResult1.End() +62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +57
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult
ar) +23 System.Web.Mvc.Async.WrappedAsyncResult
1.Fin() +62
Système.Web.Mvc.Le contrôleur.EndExecute(IAsyncResult asyncResult) +47
Système.Web.Mvc.Le contrôleur.Système.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult
asyncResult) +10
Système.Web.Mvc.<>c_DisplayClass8.b_3(IAsyncResult
asyncResult) +25
Système.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult
ar) +23 Système.Web.Mvc.Async.WrappedAsyncResult`1.Fin() +62
Système.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
+47 Système.Web.Mvc.MvcHandler.Système.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult
le résultat) +9
Système.Web.CallHandlerExecutionStep.Système.Web.HttpApplication.IExecutionStep.Execute()
+9514812 Système.Web.HttpApplication.ExecuteStep(IExecutionStep étape, Boolean& completedSynchronously) +155

Voici mon code du contrôleur.

namespace MvcApplication3.Controllers
{
    public class CustomerController : Controller
    {
        //
        //GET: /Customer/

        public ActionResult Index()
        {
            Models.NorthwindDataContext nwd = new Models.NorthwindDataContext();
            return View(nwd.Customers.ToList());
        }

    }
}

Ici est le point de vue

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication3.Models.Customer>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Index
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>

</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="ScriptsSection" runat="server">
</asp:Content>

Quelqu'un peut-il me donner une astuce pour résoudre ce problème?

votre action index renvoie une liste de clients. Est votre point de vue fortement typée pour une liste de clients ou d'une instance unique de client ?
me ressemble vous êtes de passage à une Liste<Client> mais avez - @modèle de client, pas de liste sur la vue
Juste pour voir si cela fonctionne, remplacer nwd.Customers.ToList() avec nwd.Customers.ToList().FirstOrDefault()

OriginalL'auteur newday | 2014-01-31