Maison > développement back-end > C++ > Comment puis-je lier efficacement des listes d'éléments à des vues dans MVC 4 ?

Comment puis-je lier efficacement des listes d'éléments à des vues dans MVC 4 ?

DDD
Libérer: 2024-12-30 04:18:28
original
610 Les gens l'ont consulté

How Can I Efficiently Bind Lists of Items to Views in MVC 4?

Liaison de modèle personnalisé pour les listes dans MVC 4

Liaison d'une liste d'éléments (IList) à une vue dans MVC a été un défi courant pour les développeurs. Bien que des solutions plus anciennes existent, MVC 4 introduit des améliorations qui simplifient le processus.

Pour les scénarios dans lesquels chaque élément de la liste nécessite son propre formulaire pour la saisie des données, envisagez de structurer votre ViewModel comme suit :

public class MyViewModel
{
   public List<Person> Persons{get;set;}
}
Copier après la connexion

Dans la Vue, dans le BeginForm :

@model MyViewModel


@for( int i = 0; i < Model.Persons.Count(); ++i)
{
    @Html.HiddenFor(m => m.Persons[i].PersonId)
    @Html.EditorFor(m => m.Persons[i].FirstName) 
    @Html.EditorFor(m => m.Persons[i].LastName)         
}
Copier après la connexion

L'action HttpPost recevrait la Vue mise à jour Modèle :

[HttpPost]public ViewResult(MyViewModel vm)
{
...
}
Copier après la connexion

Notez que lors de la publication, seules les propriétés avec les entrées correspondantes dans le formulaire auront des valeurs. En effet, la liaison de modèle de MVC recherche des ID consécutifs et arrête la liaison après avoir rencontré un écart. Par conséquent, il est important de s'assurer que tous les éléments de la liste ont des identifiants valides et qu'il n'y a aucune lacune dans le formulaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal