I cannot seem to do this very simple task of passing a string to a controller when a button is pressed. The data received, is always null. Can someone tell me what I'm doing wrong?
Form:
<form>
<div class="form-group">
<label for="ProcessName" class="control-control">Process Name</label>
<input id="ProcessName" class="form-control" placeholder="Choose process name">
<small id="subtitle" class="form-text text-muted">Text under input field.</small>
</div>
<button type="submit" class="btn btn-primary" id="addElement">Submit</button>
</form>
Javascript:
$(function () {
$("#addElement").click(function () {
var processName = $("#ProcessName").val();
// I've tried this method
$.post('@Url.Action("AddProcessName")', processName, function (data, status) {
alert(data)
});
// And also this one, but both of them don't work.
// I did not try them at the same time, of course
$.ajax({
type: "POST",
url: '@Url.Action("AddProcessName")',
data: processName,
dataType: 'text',
success: function (response) {
alert(response)
};
});
});
});
Server side:
[HttpPost]
public IActionResult AddProcessName(string data)
{
pm.ID = 1;
pm.Name = data; // I put a breakpoint here to check the value of 'data'
return Content(pm.Name);
}