Je suis nouveau à l'utilisation de ViewModels, j'ai une nouvelle liste ici et j'ajoute des éléments en bouclant si une table de base de données. Le problème est que tous les enregistrements qui reviennent sont identiques en utilisant le même enregistrement encore et encore. Quel pourrait être le problème et est-ce un bon moyen de remplir les données et de passer un ViewModel ou y a-t-il un meilleur moyen? À l'heure actuelle, il renvoie environ 500 enregistrements avec les mêmes données.ViewModel renvoie les mêmes valeurs pour tous les enregistrements 500+ à la vue
public class DimCustomersController : Controller
{
private AdventureWorks_MBDEV_DW2008Entities db = new AdventureWorks_MBDEV_DW2008Entities();
public ActionResult CustomersIndexVM()
{
List<DimCustomersIndexViewModel> CustomerList = new List<DimCustomersIndexViewModel>();
DimCustomersIndexViewModel CustomerItem = new DimCustomersIndexViewModel();
foreach (var m in db.DimCustomers.ToList())// cold do for loop up to count
{
CustomerItem.Title = m.Title;
CustomerItem.FirstName = m.FirstName;
CustomerItem.MiddleName = m.MiddleName;
CustomerItem.LastName = m.LastName;
CustomerItem.BirthDate = m.BirthDate;
CustomerItem.MaritalStatus = m.MaritalStatus;
CustomerItem.Suffix = m.Suffix;
CustomerItem.Gender = m.Gender;
CustomerItem.EmailAddress = m.EmailAddress;
CustomerItem.AddressLine1 = m.AddressLine1;
CustomerItem.AddressLine2 = m.AddressLine2;
CustomerItem.Phone = m.Phone;
//other columns go here
CustomerList.Add(CustomerItem);
}
return View("CustomersIndexVM", CustomerList);
}
En plus d'initialiser le modèle de vue à l'intérieur de la boucle selon les réponses, vous pouvez également utiliser 'var CustomerList = db.DimCustomers.Select (x => nouveau DimCustomersIndexViewModel {Title = x.Title, FirstName = x.FirstName, ......} .ToList(); ' –