Eu sei que isso não está certo, mas para fins de ilustração, eu gostaria de fazer algo assim:
<%= Html.Button("Action", "Controller") %>
Meu objetivo é criar um botão HTML que chame o método de ação do meu controlador MVC.
html
asp.net-mvc
Aaron Salazar
fonte
fonte
Respostas:
Não é necessário usar um formulário, a menos que você queira postar na ação. Um botão de entrada (não enviar) fará o truque.
fonte
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 }) %>'" />
A sintaxe do Razor está aqui:
fonte
'input'
para'button'
e isso resolveu o erro.<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
fez o truquetype = "button" impede o envio da página. em vez disso, executa sua ação.
fonte
Tente o seguinte:
Isso deve funcionar para você.
fonte
Você pode usar Url.Action para especificar gerar a URL para uma ação do controlador, para usar um dos seguintes:
ou:
fonte
É assim que você pode enviar seu formulário para um controlador e método de ação específicos no Razor.
fonte
Com base nas respostas acima, você pode fazer o seguinte:
fonte
O HTML
<button>
elemento pode postar apenas no formulário que o contém.Portanto, você precisa criar um formulário que poste para a ação e, em seguida, colocar um
<button>
ou<input type="submit" />
no formulário.fonte
Caso esteja recebendo um erro como "constante de sequência não terminada", use a seguinte sintaxe:
fonte
Apesar do método onclick, você também pode usar a formação da seguinte maneira:
fonte
é melhor usar este exemplo
fonte
Então, eu estou usando Razor, mas isso vai funcionar usando qualquer um. Estou basicamente quebrando um botão em um link.
fonte
Ao implementar a ação no controlador, use
ou
onde a página Index.cshtml (ou a página que gera a ação) já está definida. Caso contrário, você provavelmente encontrará o erro "a visualização ou seu mestre não foi encontrado ...".
Fonte: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
fonte
Use este exemplo:
fonte
Se você estiver na página inicial ("/ Página inicial / Índice") e desejar chamar a ação Index do Admin controller, o seguinte funcionaria para você.
fonte
é melhor usar este exemplo .
Chame a ação e o controlador usando um
ActionLink
:fonte
OK, você basicamente precisa passar a ação para o botão e chamá-lo quando o clique acontece, ele não precisa estar dentro de um from, você pode usar o botão HTML
onclick
on para acioná-lo quando o botão for clicado ...fonte
Você sempre pode brincar com os htmlHelpers e criar algumas coisas
E então, na vista, chame assim
fonte