2011-12-01 2 views
1

Malheureusement, je suis relativement nouveau à MVC alors ce que j'essaie de faire pourrait être assez simple ou même pas possible dans MVC.Ajouter dynamiquement des entrées à afficher pour les propriétés

J'ai une série de classes de modèles dans une bibliothèque qui peut avoir un modèle ajouté, modifié ou supprimé entre les versions. Ce que j'essaie de faire est de créer une page qui permettra à l'utilisateur de sélectionner dans une liste déroulante le modèle sur lequel il souhaite travailler, puis une fois qu'il aura sélectionné le modèle, il pourra remplir les propriétés du modèle à l'aide de zones de texte , des listes déroulantes, des sélecteurs de date, etc.

Alors que je pourrais en théorie créer une vue pour chacun des différents modèles, je voudrais éviter cela comme si les modèles peuvent être ajoutés/modifiés/supprimés avec des versions plus récentes de la bibliothèque, je voudrais éviter d'avoir à réécrire les vues chaque fois que cela se produit.

Est-ce que quelqu'un a des suggestions sur la façon dont je pourrais être en mesure de réaliser ceci ou de connaître des références existantes en discuter?

Si j'ai manqué des informations qui seraient utiles s'il vous plaît faites le moi savoir.

Merci pour toute aide/conseil à l'avance.

Satal

Répondre

0

Sans écrire le code, ce que vous cherchez est un composant qui construit html basé sur ce modèle/objet, il est passé à satisfaire la population de ce modèle via un navigateur web.

J'ose dire que c'est possible!

Un itinéraire facile ou plus facile serait:

  1. ornez les propriétés dans vos modèles de modèle avec des attributs qui dicterait quel type de contrôle d'entrée dont ils ont besoin.

  2. Décorez également les propriétés avec un attribut qui spécifie le nom de l'attribut.

  3. Créez un composant qui accepte un modèle/type et crée du code HTML pour satisfaire l'entrée de ce type. Bien sûr, cela doit être rendu dans un formulaire.

  4. En postback/soumettre à votre action, utilisez le Request["{propertyName}"] pour obtenir la valeur des champs de saisie pour remplir les propriétés.

  5. Votre action du contrôleur acceptera le nom du Template afin que vous sachiez quel modèle pour créer

System.ComponentModel.DataAnnotations est un bon endroit pour commencer avant d'écrire vos propres attributs personnalisés.

Questions connexes