Comment créer un modèle de vue pour une liste déroulante remplie dans ASP.NET MVC 3
Je suis en train de m'enseigner MVC3. Im la conversion de formulaires web.
J'ai besoin de créer un modèle d'affichage qui comprend une liste déroulante, je peux passer à la commande et éventuellement rendre dans la Vue.
Comment puis-je accomplir? J'ai le squelette mais je ne sais pas ce que le code est en fait de créer des paires nom /valeur pour la vue.
namespace DH.ViewModels
{
public class SharedLayoutViewModel
{
public IEnumerable<SelectListItem> Products
{
//some code to setup the value/name pairs to be rendered in the view.
//example:
//<option value="1">Mustard</option>
//<option value="2">Ketchup</option>
//<option value="3">Mayo</option>
//<option value="4">Relish</option>
//<option value="5">BBQ</option>
}
}
}
Grâce
source d'informationauteur Maddhacker24
Vous devez vous connecter pour publier un commentaire.
Je voudrais créer une classe pour le Produit et la création de Produits de la Propriété dans mon viewmodel principal, qui est de type Liste
et dans votre méthode d'Action du Contrôleur
et à votre avis qui est fortement typé à OrderViewModel.
J'ai ajouté un
SelectedProductId
propriété, de sorte que vous obtiendrez à l'utilisateur la valeur sélectionnée dans la liste déroulante de la Propriété lorsque l'utilisateur de poster le formulaire à la manette.Vous pouvez également utiliser le générique
SelectListItem
type de collection que votre modèle de vue de la propriété de transfert de la liste déroulante de données au lieu de votre personnaliséProductViewModel
collection.et dans le action,
Et à votre avis,
EDIT : conformément à la demande de l'OP, édité la réponse à la Propriété de retour des éléments statiques comme des produits
J'ai ajouté une mise en œuvre de Produits de la propriété de retourner une liste statique de produits.
Maintenant dans votre contrôleur, vous n'avez pas besoin d'appeler le GetAvailableProductsmethod comme il est déjà là. Si le contrôleur ressemble à ceci.
Ici à la sortie.
Si vous avez de nombreux articles dans les produits, d'une méthode et d'appeler cette méthode, il int obtenir la mise en place de l'écrit qu'il. C'est beaucoup plus propre approche.
Je préfère le faire de cette façon.
Donc mon point de vue, le modèle ne contient qu'une liste de produits et de générer la liste de sélection de la vue.
Pourquoi ne pouvez-vous pas simplement utiliser SelectList au sein de votre ViewModel?
C'est une sorte d'abstraction qui contient la valeur sélectionnée et la liste des articles lui-même.
Vous pouvez mettre en œuvre d'Affichage /de l'Éditeur de modèles et de définir l'attribut DataTypeAttribute/UIHintAttribute associer modèle spécifique avec la Liste de sélection.