J'ai une configuration de la méthode d'action:modèle de liaison IList d'une sélection d'articles
public ActionResult Delete(IList<Product> products)
Et une table de produits à mon avis. J'ai Model Binding qui fonctionne de telle sorte que je peux remplir la liste products
. Mais je voudrais le remplir avec uniquement les produits sélectionnés via une case à cocher.
Je pense que je pourrais le faire en changeant la méthode d'action à ceci:
public ActionResult Delete(IList<Product> products, IList<int> toDelete)
Et en passant la liste des cases à cocher au toDelete
mais je voudrais vraiment éviter de changer la signature de la méthode si possible.
Existe-t-il un moyen de transmettre uniquement les éléments sélectionnés? Ou vais-je devoir écrire un ModelBinder personnalisé?
Ce n'est pas que je * ne peux pas * toucher la signature, c'est que je ne le veux pas vraiment. Si vous lisez une méthode qui dit 'Supprimer (IList produits)' vous savez instantanément qu'il va supprimer les produits dans cette liste. Il est un peu en arrière à lire 'Supprimer (IList produits, int [] toDelete)' ou similaire. Je pourrais avoir un jeu avec votre deuxième suggestion si, acclamations. –
jeef3
Après beaucoup de délibérations, j'ai fini par modifier la signature de la méthode pour ajouter un whitelsit. J'ai commencé à faire un classeur de modèle personnalisé mais cela allait prendre trop de temps et j'avais vraiment besoin de continuer. Si j'ai le temps je peux regarder dans le classeur modèle personnalisé à nouveau. – jeef3