Erreur MVC - L'élément de modèle transmis au dictionnaire est de type 'System.Collections.Generic.List`
Je ne peux pas comprendre ce qu'il se passe avec cette erreur:
L'élément de modèle adopté dans le dictionnaire est de type 'System.Les Collections.Génériques.List1[RepositoryExample.L'employé]", mais ce dictionnaire nécessite un élément de modèle de type " RepositoryExample.Modèles.IEmployeeManagerRepository'.`
Je reçois le message d'erreur quand je vais à la vue Index. J'ai ajouté la Vue Index du contrôleur, mais il n'y a pas de code. Je suis à l'aide de Linq to SQL.
@model RepositoryExample.Models.IEmployeeManagerRepository
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
C'est mon code:
EmployeeController.cs
//GET: /Employee/
public ActionResult Index()
{
return View(_repository.ListEmployees());
}
LinqEmployeeManagerRepository.cs
public class LinqEmployeeManagerRepository: RepositoryExample.Models.IEmployeeManagerRepository
{
private DeptDirectoryDataClassesDataContext _db = new DeptDirectoryDataClassesDataContext();
public Employee GetEmployee(string UserName)
{
return (from e in _db.Employees where e.UserName == UserName select e).FirstOrDefault();
}
public IEnumerable<Employee> ListEmployees()
{
return _db.Employees.ToList();
}
public Employee CreateEmployee(Employee employeeToCreate)
{
_db.Employees.InsertOnSubmit(employeeToCreate);
_db.SubmitChanges();
return employeeToCreate;
}
public Employee EditEmployee(Employee employeeToEdit)
{
var OriginalEmployee = GetEmployee(employeeToEdit.UserName);
_db.Employees.Attach(employeeToEdit, OriginalEmployee);
_db.SubmitChanges();
return employeeToEdit;
}
public void DeleteEmployee(Employee employeeToDelete)
{
var OriginalEmployee = GetEmployee(employeeToDelete.UserName);
_db.Employees.DeleteOnSubmit(OriginalEmployee);
_db.SubmitChanges();
}
}
IEmployeeManagerRepository.cs
namespace RepositoryExample.Models
{
public interface IEmployeeManagerRepository
{
Employee CreateEmployee(Employee employeeToCreate);
void DeleteEmployee(Employee employeeToDelete);
Employee EditEmployee(Employee employeeToUpdate);
Employee GetEmployee(string UserName);
IEnumerable<Employee> ListEmployees();
}
}
Les idées de ce que je fais mal? Je suis en train de suivre l'exemple sur le modèle de Référentiel dans ce tutoriel: http://www.asp.net/mvc/tutorials/iteration-4-make-the-application-loosely-coupled-cs.
source d'informationauteur MikeB55
Vous devez vous connecter pour publier un commentaire.
Dans le haut de votre
Index.cshtml
vue de remplacer:avec:
La
_repository.ListEmployees()
méthode renvoieIEnumerable<Employee>
et c'est ce que vous êtes de passage pour le point de vue ici:Donc, c'est le type que vous devriez être à l'aide dans le
@model
directive dans votre point de vue.