Je sais que ce n'est pas juste, mais pour l'illustration, j'aimerais faire quelque chose comme ça:
<%= Html.Button("Action", "Controller") %>
Mon objectif est de créer un bouton HTML qui appellera la méthode d'action de mon contrôleur MVC.
html
asp.net-mvc
Aaron Salazar
la source
la source
Réponses:
Pas besoin d'utiliser un formulaire du tout, sauf si vous souhaitez publier dans l'action. Un bouton de saisie (non soumis) fera l'affaire.
la source
public static string ActionButton(this HtmlHelper helper, string action, string controller, string text) { return String.Format("<input type=\"button\" value=\"{0}\" onclick=\"location.href='{1}' />",text,Url.Action(action,controller)); }
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller", new { parameter1 = value1 }) %>'" />
La syntaxe du rasoir est ici:
la source
'input'
à'button'
et cela a résolu l'erreur.<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
fait de faire l'affairetype = "button" empêche la soumission de la page. au lieu de cela, il exécute votre action.
la source
Essaye ça:
Cela devrait fonctionner pour vous.
la source
Vous pouvez utiliser Url.Action pour spécifier générer l'URL d'une action de contrôleur, vous pouvez donc utiliser l'une des options suivantes:
ou:
la source
C'est ainsi que vous pouvez soumettre votre formulaire à un contrôleur et une méthode d'action spécifiques dans Razor.
la source
En vous appuyant sur quelques-unes des réponses ci-dessus, vous pouvez le faire:
la source
Le HTML
<button>
élément ne peut être publié que dans le formulaire qui le contient.Par conséquent, vous devez créer un formulaire qui POSTE à l'action, puis placez un
<button>
ou<input type="submit" />
dans le formulaire.la source
Si vous obtenez une erreur en tant que "constante de chaîne non terminée", utilisez la syntaxe de rasoir suivante:
la source
Malgré la méthode onclick, vous pouvez également utiliser la formaction comme suit:
la source
il vaut mieux utiliser cet exemple
la source
Donc, j'utilise Razor mais cela fonctionnera avec l'un ou l'autre. J'emballe un bouton dans un lien.
la source
Lorsque vous implémentez l'action dans le contrôleur, utilisez
ou
où la page Index.cshtml (ou la page qui génère l'action) est déjà définie. Sinon, vous rencontrez probablement l'erreur "la vue ou son maître n'a pas été trouvé ...".
Source: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
la source
Utilisez cet exemple:
la source
Si vous êtes sur la page d'accueil ("/ Home / Index") et que vous souhaitez appeler l'action Index du contrôleur Admin, la procédure suivante fonctionnera pour vous.
la source
il vaut mieux utiliser cet exemple .
Action d'appel et contrôleur à l'aide d'un
ActionLink
:la source
OK, vous devez essentiellement passer l'action au bouton et l'appeler lorsque le clic se produit, il n'a pas besoin d'être à l'intérieur d'un, vous pouvez utiliser HTML
onclick
sur le bouton pour le déclencher lorsque le bouton est cliqué ...la source
Vous pouvez toujours jouer avec htmlHelpers et créer des trucs
Et puis sur la vue, appelez-le comme ça
la source