Comment poster un champs dynamiquement créé dans une table à l'aide jquery / asp.net mvc

StackOverflow https://stackoverflow.com/questions/1928462

Question

I ai un bouton qui va créer une nouvelle entrée (ligne d'une table) dynamiquement en utilisant jQuery. Chaque entrée est une ligne dans une table HTML.

Pour chaque ligne, chaque colonne comporte une entrée (zone de texte, un bouton radio, case à cocher) etc.

Parce que vous pouvez ajouter autant de lignes que vous le souhaitez vous vous retrouvez avec une série ou d'une collection de ces lignes.

Quand je posterai la forme, je ne crois pas que ces données dans le FormsCollection et ne comprends pas tout à fait comment traduire ces contrôles dans un objet de données pour la liaison.

Donc, essentiellement, il y a 2 questions:

  1. Y at-il un problème avec les contrôles créés dynamiquement et faire en sorte qu'ils apparaissent sous la forme de post?

  2. Qu'est-ce qu'un moyen de passer le long d'une structure de la table de données à mon contrôleur. Je veux presque avoir chaque ligne représentent un certain enregistrement objet, puis passer au-dessus d'une collection de disques au contrôleur si quelque chose comme cela est possible.

Toutes les suggestions?

Était-ce utile?

La solution

Pour obtenir une collection, assurez-vous que le nom des zones de texte est quelque chose comme « MyRecord.MyList [0] .Field1 ». MVC automatiquement tirer que jusqu'à un dénombrable. Pour votre javascript ajoute, assurez-vous que chaque ligne ajoutée a un indice correctement incrémentée (par exemple, de nouveaux champs nommés « MyRecord.MyList [1] .Field1 »).

Autres conseils

Vous ne devez vous assurer que vos éléments sont dynamiquement créés entre les balises de formulaire.

Le modèle par défaut de liaison se liera à un tableau d'objets si vous assurez-vous de nommer vos champs de telle sorte qu'ils deviennent « Chose [3] .name » (ce qui est le champ Nom de la quatrième ligne, liée zéro array)

Votre signatture pour la méthode d'action devient alors un peu comme:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MethodName(thing[] things)
{
    ...  
}

Gentillesse,

Dan

Assurez-vous que l'ID de chaque ligne est unique, mais il devrait republier si, dans la forme qui est l'affichage au serveur ... Comment allez-vous le poste? Faites-vous le poste avec JQuery?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top