2017-09-06 3 views
-1

Je reçois l'erreur suivante An unhandled exception occurred while processing the request. InvalidOperationException: The 'Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder' cannot bind to a model of type 'Microsoft.AspNetCore.Http.FormCollection'. Change the model type to 'Microsoft.AspNetCore.Http.IFormCollection' instead.C# ASP.NET de base ne peut pas se lier à un modèle de type « Microsoft.AspNetCore.Http.FormCollection »

C'est quand j'utilise le code suivant:

[ValidateAntiForgeryToken] 
[HttpPost] 
public IActionResult Index(Test test, FormCollection formCollection) 
{   
    var feesAmountArray = new List<string>(); 

    foreach (var item in formCollection.Keys.Where(k => k.StartsWith("FeesAmount-"))) 
    { 
     feesAmountArray.Add(formCollection[item].ToString().TrimEnd(',')); 
    } 

    var feesAmount = string.Join(",", feesAmountArray); 

    if (ModelState.IsValid) 
    { 
    } 

    return View(test); 
} 

Dans le modèle Test J'utilise un attribut [Decimal] qui est utilisé en conjonction avec un ModelBinder, mais je ne veux pas me lier à la forme de toute façon, je veux juste me lier au modèle, donc je suis un peu confus quant à pourquoi ce message se présente-t-il?

Le code relatif à la ModelBinder se trouve à:

C# ASP.NET Core ModelBinder not Updating Model

Toute aide serait très apprécié :-)

+0

Que comptez-vous entrer dans la valeur 'formCollection' si vous ne voulez pas qu'il fasse partie de la liaison au modèle? –

+0

La forme principale est liée au modèle 'Test' mais le formulaire peut inclure des champs dynamiques créés par jQuery, donc je dois principalement valider le modèle de base' Test' et en plus vérifier les champs dynamiques générés qui n'existent pas dans le Modèle 'Test'. – iggyweb

+0

J'ai ajouté du code supplémentaire pour répondre au besoin de FormCollection. – iggyweb

Répondre

1

Deux options:

  1. changer votre paramètre be IFormCollection
  2. Supprimez-le et accédez-y via HttpContext.Form
+0

L'option 1 a fonctionné, merci. – iggyweb