Question

Je transmet certaines informations sur un modèle à un lien d'action, mais j'aimerais également fournir l'action avec les valeurs de certaines entrées sur la page. Par exemple, si j'avais quelque chose comme ça:

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

J'aimerais que l'action soit au courant de Model.Value (qui est passé dans le paramètre via) et de la valeur de MyInput. Normalement, j'utiliserais une FormCollection, mais je ne peux pas dans ce cas car je ne fais pas de soumission.

Alors, comment puis-je passer la valeur de MyInput à MyAction? Dois-je ajouter une propriété nommée MyInput à mon modèle? En supposant que cela fonctionnerait, y a-t-il un moyen plus facile, ou au moins un qui n'implique pas de modifier le modèle?

Était-ce utile?

La solution

Il n'y a aucun moyen de le faire en HTML, il n'y a donc pas de moyen de le faire dans ASP.NET MVC.

Il existe deux solutions possibles que vous pouvez choisir:

  1. Utilisez JavaScript de telle sorte que lorsque l'utilisateur modifie la zone de texte, vous modifiez dynamiquement la valeur de la balise d'ancrage pour inclure ce qu'ils ont tapé. Vous ne pouvez pas utiliser le routage ASP.NET pour cela car cela s'exécute sur le serveur et vous avez besoin du code côté client.

  2. Faites un formulaire Soumettre au lieu d'un lien. C'est la manière recommandée dans HTML. Lorsque l'utilisateur soumet des données, elle devrait être sous un formulaire. Enveloppez tout dans une balise de forme et placez la zone de texte et un bouton là-dedans. Définissez l'action du formulaire pour être l'URL que vous souhaitez publier.

C'est la même réponse que je mets cette question, bien que le demandeur de l'autre question ait pu avoir une idée légèrement différente.

Autres conseils

J'ai déterminé que j'aurais probablement pu lire les valeurs de la zone de texte via JavaScript (j'aurais probablement utilisé jQuery) et les a passées comme paramètres dans le cadre d'un type anonyme (au lieu d'utiliser simplement Model.Value). Cependant, j'ai décidé de passer de l'utilisation d'un lien d'action pour simplement faire un formulaire soumettre et utiliser la forme FormCollection. Cela avait juste plus de sens avec la page que je construisais.

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