Кнопка HTML, вызывающая контроллер MVC и метод Action - PullRequest
173 голосов
/ 24 марта 2010

Я знаю, что это неправильно, но для иллюстрации я хотел бы сделать что-то вроде этого:

<%= Html.Button("Action", "Controller") %>

Моя цель - создать кнопку HTML, которая будет вызывать метод действия моего контроллера MVC.

Ответы [ 17 ]

243 голосов
/ 24 марта 2010

Нет необходимости использовать форму вообще, если вы не хотите опубликовать в действии. Кнопка ввода (не отправить) сделает свое дело.

  <input type="button"
         value="Go Somewhere Else"
         onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
216 голосов
/ 06 апреля 2013

Синтаксис бритвы здесь:

<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
61 голосов
/ 02 октября 2014
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />

type = "button" запрещает отправку страницы. вместо этого он выполняет ваше действие.

15 голосов
/ 24 марта 2010

Вы можете использовать Url.Action для указания создания URL-адреса для действия контроллера, поэтому вы можете использовать любое из следующих действий:

<form method="post" action="<%: Url.Action("About", "Home") %>">
   <input type="submit" value="Click me to go to /Home/About" />
</form>

или

<form action="#">
  <input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
  <input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
14 голосов
/ 18 декабря 2014

Попробуйте это:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

Это должно сработать для вас.

9 голосов
/ 08 апреля 2014

Опираясь на пару приведенных выше ответов, вы можете сделать это:

<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
8 голосов
/ 16 февраля 2016

Так вы можете отправить свою форму определенному контроллеру и методу действия в Razor.

 <input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
6 голосов
/ 24 марта 2010

Элемент HTML <button> может отправлять сообщения только в форму, содержащую его.

Поэтому вам нужно создать форму, которая отправляет сообщение в действие, а затем поставить <button> или <input type="submit" /> в форме.

5 голосов
/ 26 мая 2015

В случае, если вы получаете ошибку как «неопределенная строковая константа», используйте следующий синтаксис бритвы:

<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
4 голосов
/ 19 августа 2017

Несмотря на метод onclick, вы также можете использовать форматирование следующим образом:

<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...