1

Un peu de fond:population Liste ASP.NET MVC fortement typées vues

Je construis une application MVC pour stocker des données de cours de golf et ont créé une vue Créer page pour les cours. Cela contient une vue partielle d'une carte de score que je vais utiliser pour d'autres choses telles que l'enregistrement des résultats etc J'ai actuellement construit la carte de score de sorte qu'il déclenche jquery déclenche quand il est édité. À partir de laquelle le cours crée a un code jquery lié à ces événements et remplit les entrées de forme cachées pour chacun des 18 trous.

Question:

Je me demandais si je dois avoir une masse d'entrées de formulaire cachés sur ma page de création pour stocker les valeurs tirées ou si je peux avoir une liste dans mon modèle de vue que je peux mettre à jour en quelque sorte.

Des solutions plus élégantes que ce que j'ai en ce moment seraient utiles.

Répondre

1

Vous pouvez créer une classe personnalisée comme ScorecardFormViewModel et inclure les éléments dont vous avez besoin en tant que propriétés et votre Voir héritera ScorecardFormViewModel

EDIT:

public class ScoreCardFormViewModel { 

// Properties 
public List<ParValues> { get; private set; } 

public GolfCourse GolfCourse {get; private set;} 

public ScoreCardFormViewModel(int golfCourseId) 
{ 
    GolfCourse = SomeMethodToGetGolfCourseFromModel(golfCourseId); 
    // Some way to populate ParValues 
} 

} 

Je viens de créer une liste de ParValues, peut-être un plus simplification, mais vous pouvez mettre autant de propriétés que vous vouliez ici

+0

Merci pour votre réponse et il pourrait être utile de le faire. Je ne pense pas que cela me permettra d'avoir une liste dans le ScorecardFormViewModel que je pourrais mettre à jour sans avoir beaucoup de propriétés redondantes sur le ViewModel comme "private int Hole1Par" qui référence la liste. Si c'est possible, pourriez-vous m'expliquer comment je peux faire cela, car ce serait parfait. Merci – bobwah

1

Je crois que this post de Phil Haack pourrait vous être utile. Il décrit comment utiliser le classeur de modèle ASP.NET MVC par défaut pour remplir une liste avec des données provenant de plusieurs éléments d'entrée côté client (dans votre exemple, ce sont les différentes zones de texte, etc. pour chaque trou).