Je tente d'implémenter un système de marquage dans mon projet asp.net MVC. Lorsqu'un utilisateur modifie ou ajoute une tâche, il peut ajouter n'importe quelle quantité de tags avant de la soumettre. J'utilise le plugin Jquery Tagit, donc lorsqu'un utilisateur ajoute une nouvelle balise un champ de saisie est créé qui ressemble à:Impossible d'obtenir ma table d'entrée html pour sérialiser dans une liste <string> dans Asp.Net mvc
<input type="hidden" style="display:none;" value="tag1" name="Tags[]">
Lorsque l'utilisateur appuie sur le bouton Soumettre après avoir ajouté quelques balises, le navigateur envoie les éléments suivants querystring au serveur (récupéré via Fiddler):
IsNew=True&Id=2222&Title=Test+Title&Description=Test+Description&Tags%5B%5D=Tag1&Tags%5B%5D=blah&Tags%5B%5D=another-tag
maintenant, mon viewmodel que je sérialisation ces données dans la structure suivante:
public class KnowledgeBaseTaskViewModel
{
public int Id { get; set; }
[Required(AllowEmptyStrings=false, ErrorMessage="Task title is required")]
[StringLength(500)]
public string Title { get; set; }
[Required(AllowEmptyStrings=false, ErrorMessage="Task description is required")]
[StringLength(500)]
public string Description { get; set; }
public List<string> Tags { get; set; }
public bool IsNew { get; set; } // Needed to determine if we are inserting or not
}
Enfin mon réception d'action a la signature suivante:
[HttpPost]
public ActionResult EditTask(KnowledgeBaseTaskViewModel task)
Le problème est que ma liste de balise n'est pas sérialisation correctement, et ma liste balises est nulle. J'ai regardé diverses questions sur ce site sur la façon de sérialiser les tableaux, mais je ne peux toujours pas voir ce que je fais mal. Toute aide est grandement appréciée.
IList ne semble pas lier soit: -/ –
KallDrexx
J'ai vérifié le lien. Tout ce que je fais semble être conforme à ce qu'ils disent. – KallDrexx
Supprimer les crochets des balises 'name =" [] "' –