Calling ASP.NET MVC Action Methods from JavaScript Calling ASP.NET MVC Action Methods from JavaScript javascript javascript

Calling ASP.NET MVC Action Methods from JavaScript


Use jQuery ajax:

function AddToCart(id){   $.ajax({      url: 'urlToController',      data: { id: id }   }).done(function() {      alert('Added');    });}

http://api.jquery.com/jQuery.ajax/


Simply call your Action Method by using Javascript as shown below:

var id = model.Id; //if you want to pass an Id parameterwindow.location.href = '@Url.Action("Action", "Controller")/' + id;

Hope this helps...


You are calling the addToCart method and passing the product id. Now you may use jQuery ajax to pass that data to your server side action method.d

jQuery post is the short version of jQuery ajax.

function addToCart(id){  $.post('@Url.Action("Add","Cart")',{id:id } function(data) {    //do whatever with the result.  });}

If you want more options like success callbacks and error handling, use jQuery ajax,

function addToCart(id){  $.ajax({  url: '@Url.Action("Add","Cart")',  data: { id: id },  success: function(data){    //call is successfully completed and we got result in data  },  error:function (xhr, ajaxOptions, thrownError){                  //some errror, some show err msg to user and log the error                    alert(xhr.responseText);                }      });}

When making ajax calls, I strongly recommend using the Html helper method such as Url.Action to generate the path to your action methods.

This will work if your code is in a razor view because Url.Action will be executed by razor at server side and that c# expression will be replaced with the correct relative path. But if you are using your jQuery code in your external js file, You may consider the approach mentioned in this answer.