Question

J'ai une vue qui contient 2 zones de liste: Audience et Locale

Je suis en train de soumettre un formulaire qui contient l'index sélectionné des deux à mon contrôleur, qui a une méthode d'action de cette signature:

public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}

Le problème que je vais avoir est à la fois public et ont une propriété Locale ID, de sorte que le modèle Binder est un peu confus sur lequel assigner les valeurs sélectionnées à. Les deux sont-ils assignés la valeur « 1 », lorsque l'audience devrait avoir « 2 » et Locale devrait avoir « 1 »

La question est de savoir comment puis-je obtenir la page de faire la différence entre les deux quand il est la soumission? Nous avons essayé préfixer la valeur d'ID pour Locale avec « locale. », De sorte que la chaîne de paramètres qui est transmis sous forme de données au contrôleur ressemble "&locale.id=1&audience.id=2" mais cela ne semble pas fonctionner.

Toutes les suggestions? Si plus d'informations est nécessaire, je vais l'alimenter.

Merci

Dave

Était-ce utile?

La solution

Utilisation:

public JsonResult Submit([Bind(Prefix = "audience")]Audience aud,[Bind(Prefix = "locale")]Locale loc)
{
// do stuff
}

Tous les champs du public devrait avoir le préfixe "public" dans le nom dans le champ html: audience.id, audience.name, ...

<input id="audience_name" name="audience.Name" type="text" value="" />

Autres conseils

Vous devriez avoir un ViewModel spécifique pour prendre des données dans votre action de soumission. Cet objet doit avoir AudienceId et LocaleID. Lorsque vous créez vos listes déroulantes vous devez les créer avec des noms qui correspondent à ce que vous attendez.

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