Quand je besoin d'utiliser une recherche j'inclure habituellement la propriété ID dans la classe de modèle de vue pour que je puisse l'utiliser de cette façon dans la vue correspondanteComment gérer les recherches?
<%= Html.LabelFor(model => model.LookupTableID)%>
<br />
<%= Html.DropDownListFor(model => model.LookupTableID, Model.LookuptableList, new {}) %>
ayant Model.LookuptableList
comme une propriété dans le modèle lui-même comme ceci:
public IEnumerable<SelectListItem> LookuptableList {
get {
return GetLookuptableList().Select(
t => new SelectListItem { Text = t.Description, Value = t.LookupTableID.ToString() });
}
}
Mais je ne suis pas sûr que ce soit une bonne façon de gérer cela à cause de la fonction GetLookuptableList()
dans la classe de modèle de vue.
Y a-t-il une meilleure façon de le faire?
Eh bien, qu'est-ce que 'GetLookuptableList()' alors? Pourquoi pensez-vous qu'il est problématique que cette méthode soit dans le modèle? –
Cette fonction récupère la liste de recherche du magasin sous-jacent. Je ne pense pas que ce soit problématique. Je pense juste que cela ne devrait pas être là. Rester dans le modèle ne suit pas correctement la séparation des préoccupations .... – Lorenzo
Oui, Lorenzo. Je pense que l'accès au magasin sous-jacent à partir du modèle de vue Couche de présentation pourrait être remplacé par un membre IEnumerable rempli au niveau du contrôleur Couche d'application. donc votre viewModel pourrait rester agnostique à partir de l'accès au magasin sous-jacent – SDReyes