 <h2>Some background info...</h2> <p>If you come from the webforms and code-behind world is common to you that an HTML element calls a script in the code, but actually what asp.net webforms does is an http call to the script on the server. If you had an <code>updatepanel</code>, asp.net webforms would have done the same call via ajax.</p> <p>That's the reason why in asp.net webforms the elements have the preceding <code>asp:</code> on their branded <code>html</code> tags. That way asp.net can convert their branded elements to real HTML elements. </p> <h2>The answer</h2> <p>The only way to execute the code of an <code>action</code> from an HTML element on-click event in asp.net MVC is by calling the URL that gets to that method. Either via ajax or by a request from the browser, an http request needs to be done.</p> <p>With javascript you can listen when an element's on-click event is fired and then do some logic. If you're using jquery you can use the <code>$.ajax()</code> or <code>$.get()</code> methods to make a call to your action URL. </p>