16 ответов:
нет необходимости использовать форму вообще, если вы не хотите, чтобы опубликовать в действии. Кнопка ввода (не отправить) будет делать трюк.
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
Razor синтаксис здесь:
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />type= "button" предотвращает отправку страницы. вместо этого он выполняет ваши действия.
Вы можете использовать Url.Действие для указания создать 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>
попробуйте это:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)Это должно работать для вас.
основываясь на нескольких из приведенных выше ответов, вы можете сделать это:
<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
Это как вы можете subbmit вашу форму к специфическому методу регулятора и действия в бритве.
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
HTML
<button>элемент может только вернуться к форме, содержащей его.поэтому вам нужно сделать форму, которая публикует действие, а затем поставить
<button>или<input type="submit" />в форме.
в случае, если вы получаете сообщение об ошибке как "unterminated string constant", используйте следующий синтаксис razor:
<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
когда вы реализуете действие в контроллере, используйте
return View("Index");или
return RedirectToAction("Index");индекс, где.страница cshtml (или страница, которая генерирует действие) уже определена. В противном случае вы, вероятно, столкнетесь "вид или его хозяин не был найден..." ошибка.
источник: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
Итак, я использую бритву, но это будет работать с помощью либо. Я в основном обертываю кнопку в ссылке.
<a href="Controller/ActionMethod"> <input type="button" value="Click Me" /> </a>
несмотря на метод onclick, вы также можете использовать formaction следующим образом:
<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
лучше использовать
<a href="@Url.Action("Register","Account", new {id=Item.id })" class="btn btn-primary btn-lg">Register</a>
Если вы находитесь на домашней странице ("/Home/Index"), и вы хотели бы вызвать действие индекса контроллера администратора, следующее будет работать для вас.
<li><a href="/Admin/Index">Admin</a></li>
ОК вам в основном нужно передать действие на кнопку и вызвать его, когда произойдет щелчок, он не должен быть внутри, вы можете использовать HTML
onclickon чтобы вызвать его, когда вам нажатии...<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>
лучше использовать этот пример.
вызов действия и контроллера с помощью
ActionLink:@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})
Comments