Можно создать дубликат:
Mvc Html.ActionButtonкнопку MVC нажмите на действия
С ASP.NET MVC 3
Я знаю, как создать ссылку на метод действия очень легко, но то, что я хотел бы знать, как сделать кнопку (при нажатии) вызвать конкретный метод действий?
Можно создать дубликат:
Mvc Html.ActionButtonкнопку MVC нажмите на действия
С ASP.NET MVC 3
Я знаю, как создать ссылку на метод действия очень легко, но то, что я хотел бы знать, как сделать кнопку (при нажатии) вызвать конкретный метод действий?
Сэчин,
Если вы используете JQuery (который вы не упоминаете, но я покажу, как это довольно стандартная с MVC), вы могли бы сделать следующее:
$('#buttonId').click(function(){
document.location = '@Url.Action("MyAction","MyController")';
});
Конечно, вы, вероятно, захотите использовать ajax, но это основной пример.
Как и ответ Дарина об использовании метода GET формы, вы также можете вызвать функции javascript, которые в свою очередь вызовут действие.
Вы можете перехватить событие нажатия кнопки при щелчке и запустить свой собственный код. Этот код можно назвать действия асинхронно с помощью Ajax или просто перейти к методу действия
Вот пример Javascript, что перехватывает событие нажатия кнопки
$(document).ready(function() {
myButton.onclick = function (event) {
// in here you can call an ajax method or just navigate to an action
return false;
}
// or using jQuery
$('#myButton').click(function (e) {
// do whatever here
e.preventDefault;
});
});
Или вы можете перехватывать кнопку, которая имеет HREF атрибут
$(function() {
$("#myButton").click(function() {
var href = $(this).attr("href");
var route = href + "?paramName=" + $('#SomeValue').val();
$(this).attr("href", route);
});
});
Это добавляет информацию о параметрах, которые вы можете хранящиеся в другом входе на странице и добавляет его в URL-адрес, а затем переходит к действию
Как вы это делаете? Точно так же, как если бы вы не использовали MVC.
<INPUT TYPE="BUTTON" VALUE="Home Page" ONCLICK="window.location.href='/Controller/Action'">
Лучше не иметь встроенный JavaScript. См. Ответ Джима или Смита Смита. – knownasilya
Вы можете использовать HTML <form>
:
@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Get))
{
<input type="submit" value="Click me" />
}
спасибо, это сработало для меня – animaonline
Это сработало для меня: – Vardhini
Почему использовать JavaScript, когда HTML уже есть все, что нужно? Написание семантической разметки всегда лучше, чем javascript. –
Да, но ОП задал вопрос о нажатии кнопки, чтобы вызвать действие, это действие не обязательно должно быть сообщением формы, оно может быть просто для навигации или простого запроса ajax. –
Кто сказал, что форма может только делать POST? Вы можете отлично использовать GET-глагол. –