1

J'ai une action à laquelle je souhaite placer un classeur de modèle personnalisé. Je ne veux pas de liant global. Je veux juste le classeur sur les actions que je spécifie en utilisant [ModelBinder (...)]Comment placer un classeur de modèle personnalisé sur une action de contrôleur

Lorsque j'utilise le code ci-dessous, mon classeur n'est jamais appelé et mon action non plus.

public IActionResult MyContactInfo([ModelBinder(BinderType = typeof(Binders.TrimModelBinder), Name = "TrimModelBinder")] MyAccountModel mam) 
{ 
    //... 
} 

Trace de pile:

à Microsoft.Extensions..Internal.ActivatorUtilities.GetService (IServiceProvider sp, type de type, type requiredBy, Boolean isDefaultParameterRequired) à lambda_method (Clôture, IServiceProvider, objet []) à Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.d__2.MoveNext() --- Fin de la trace de la pile de l'emplacement précédent où exception a été levée ---

Rechercher s comme je dois enregistrer ce classeur quelque part?

Répondre

1

Essayez de supprimer Name propriété sur votre ModelBinder attribut et ne pas oublier de définir la valeur réelle du résultat en liant en utilisant le code suivant:

bindingContext.Result = ModelBindingResult.Success(resultModel);