On button click I am trying to send a product name value that the user enters into a textbox to the server to be modified and then back to the page using AJAX. I am getting into the ChangeName method in the controller but not getting into my success function to alert the new name.
The JS:
$("#changeNameButton").click(function () {
var productName = $("#Name").val();
$.ajax({
url: '/Products/ChangeName/',
type: 'POST',
dataType: 'JSON',
data: {name: productName},
success: successFunc
});
});
function successFunc(data) {
alert(data);
}
The controller:
public string ChangeName(string name)
{
string changedName = ChangeNameHelper(name);
return changedName;
}
If anyone can give recommendations on the proper way to make asynchronous calls to a controller in MVC5/6 this would be great.
My main problem is that I am never getting into the successFunc() on response.
return name;rather thanreturn ChangeName(name)as you're making recusive calls.ChangeNamefunction just calls itself, which would result in an infinite loop. It never gets to success because the server would never return a response to the client.ChangeName(name)as the first line, you'll just keep calling theChangeNamefunction infinitely. You either need to call another function (to do some work) or justreturn name;