L'ajout de paramètre supplémentaire pour soumettre le formulaire
J'ai un formulaire de déclaration en mon Rasoir vue
<form method="post" action="/Lot/LotList?auctionEventId=@auctionEventId" id="filterForm">
(D'ailleurs, j'ai choisi de l'écrire comme ceci plutôt que d'utiliser Html.BeginFrom
parce que j'avais besoin de donner un id et je ne savais pas comment le faire avec Html.BeginFrom
- mais ce n'est pas la question ici)
En dehors de ce formulaire, j'ai un bouton qui soumet ce formulaire (il y a également un bouton de soumission du formulaire)
<input type="button" onclick="$('#filterForm').submit();" value="Show all" />
Maintenant, le problème est que si cette touche est utilisée pour soumettre la forme que je veux de l'action dans le formulaire de changement de
action="/Lot/LotList?auctionEventId=@auctionEventId&showAll=true"
Comment puis-je modifier l'action et de passer ce paramètre supplémentaire? Est-il totalement meilleure façon de faire tout cela?
Vous devez vous connecter pour publier un commentaire.
Ajoutant des paramètres de chaîne de requête sur la forme de l'action, et d'essayer de changer qu'au moment de l'exécution est difficile (mais pas impossible). Beaucoup plus facile est d'utiliser les champs cachés:
Alors maintenant, tout ce que vous avez à faire est d'ajouter un autre champ caché pour "showAll"
Et il vous suffit de raccorder un événement jquery sur votre showAll bouton:
jQuery:
comment mettre un caché d'entrée
sur le bouton
sur votre script quelque part
Je sais que vous avez dit ce n'est pas la question, mais vous pouvez ajouter des attributs à
Html.BeginForm
comme ceci:Si vous êtes dans un formulaire, vous pouvez ajouter la route pour un élément de bouton. Vous pouvez remplacer le natif de l'action du formulaire à l'aide de formAction et formMethod. Vous pouvez également avoir plusieurs boutons avec d'autres formActions et formMethods
HTML:
Bonjour, j'ai trouvé que cela fonctionne très bien
J'en avais marre de faire le " FormMethod.Post avant de le param mais il ne fonctionne pas et n'a jamais passé la valeur. Seulement par essais et erreurs, j'ai réussi à le résoudre, et compris qu'il doit être comme le code que j'ai posté.
Espère que ça aide