9
votes

ASP.NET MVC 2 - Valeurs de réglage sur ItivalueProvider

Je tente de mettre à niveau mon projet MVC 1 en MVC 2 RC. Nous avons actuellement une modélisation personnalisée qui ajoute des éléments à la valeurProvider (cela a fonctionné quand c'était un dictionnaire). Nous avons ensuite transmis cela à la modélisation par défaut. Cependant, ItivalueProvider n'a pas d'ajout de méthode. Cet algorithme ne fonctionne plus. Est-ce que quelqu'un sait un moyen d'ajouter des valeurs à la valeurProvider dans mvc 2? xxx


1 commentaires

Même problème pour le moment, je ne trouve aucune documentation décente sur la manière de mettre en place des liants de modèle personnalisés pour MVC2 n'importe où


3 Réponses :


0
votes

Impossible d'utiliser l'un des types dérivés de ItivalueProvider ? (Ou même créer le vôtre, mais il semble y avoir des implémentations décentes dans le cadre)

ValueProviderdiction . ValueProviderCollection , < un href = "http://msdn.microsoft.com/en-us/library/system.web.mvc.formcollection(vs.100).aspx" rel = "Nofollow Noreferrer"> FormCollection (et un Couple de plus) Ils impliquent tous ItivalueProvider .

Je ne suis pas sûr si cela aide. Je ne suis pas tout à fait sûr de ce que vous essayez de faire. Je n'avais pas eu à gérer la mêlée avec les paramètres de poste.


3 commentaires

Vous pouvez utiliser un type dérivé d'ItivalueProvider, mais vous devez filer ce pipeline.


Les deux premiers ont été obsolètes.


La page MSDN dit que valueProviderdicary est obsolète, mais je n'ai pas vu où il est indiqué que le valueProviderCollection est?



0
votes

Je vous ai probablement mal, mais quel est ce préfixe que vous utilisez? Est-ce lié à une relation enfant de votre modèle?

Sinon, pourquoi ne pas dériver de la par défautModelbinder et remplacer la méthode bindmodel () ? De cette façon, vous pouvez appeler base.bindmodel () et manipuler les valeurs ensuite, mais vous ne pouvez pas utiliser la validation du modèle alors (assurez-vous de lire http://bradwilson.typepad.com/blog/2010/01/ entrée-validation-vs-modèle-validation-in-aspnet-mvc.html , car il y aura un changement significatif dans la version par rapport au RC).

L'approche de nettoyage, d'après ce que je peux deviner que vous essayez de faire, est d'utiliser un point de vue dans ce cas. Étant donné que la manipulation est probablement non triviale, vous voudrez peut-être séparer la validation des entrées et du modèle les uns des autres.

Je ne sais pas si cela aide soit ...


1 commentaires

Fondamentalement, j'essaie de déchiffrer des valeurs qui ont un certain préfixe. Nous essayons de le faire afin que nos illustrations de vie ne connaissent pas le décryptage - ils ont juste un INT et au moment où cela leur rend compte, il a été déchiffré. Donc, non cela ne résout pas le problème.



2
votes

Le problème est qu'au moment où vous arrivez à la modélisation, votre valeurProvider a déjà été définie. Auparavant, vous pouvez ajouter des valeurs à votre valeurProvider à ce stade.

Pour fournir une valeur de valeur personnalisée, vous devez remplacer le contrôleurInvoker, qui est la solution ultime. Malheureusement, le contrôleurInvoker est créé par l'objet du contrôleur, au lieu d'être injecté. Par conséquent, vous devez également remplacer le contrôleur pour appeler votre propre contrôleurInvokerInvoker.


1 commentaires

On dirait qu'il y a une solution plus facile. Vous pouvez simplement créer votre propre valeurProvider et l'ajouter à la collection Static ValueProviderFactories.Factories dans Application_Start.