2012-05-25 5 views

ответ

22

Сэчин,

Если вы используете JQuery (который вы не упоминаете, но я покажу, как это довольно стандартная с MVC), вы могли бы сделать следующее:

$('#buttonId').click(function(){ 
    document.location = '@Url.Action("MyAction","MyController")'; 
}); 

Конечно, вы, вероятно, захотите использовать ajax, но это основной пример.

4

Как и ответ Дарина об использовании метода 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-адрес, а затем переходит к действию

+0

Почему использовать JavaScript, когда HTML уже есть все, что нужно? Написание семантической разметки всегда лучше, чем javascript. –

+0

Да, но ОП задал вопрос о нажатии кнопки, чтобы вызвать действие, это действие не обязательно должно быть сообщением формы, оно может быть просто для навигации или простого запроса ajax. –

+0

Кто сказал, что форма может только делать POST? Вы можете отлично использовать GET-глагол. –

4

Как вы это делаете? Точно так же, как если бы вы не использовали MVC.

<INPUT TYPE="BUTTON" VALUE="Home Page" ONCLICK="window.location.href='/Controller/Action'"> 
+0

Лучше не иметь встроенный JavaScript. См. Ответ Джима или Смита Смита. – knownasilya

14

Вы можете использовать HTML <form>:

@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Get)) 
{ 
    <input type="submit" value="Click me" /> 
} 
+0

спасибо, это сработало для меня – animaonline

+0

Это сработало для меня: Vardhini