Вы не передаете данные правильно. Аргумент действия называется inputdata
. Поэтому вы должны использовать это же имя в хеше data
запроса AJAX:
$.ajax({
url: '/Home/save',
dataType: 'json',
type: 'POST',
data: { inputdata: 'test' },
success: function (result) {
$('#result').html(result.Result);
}
});
Также никогда не указывайте в своем javascript URL-адреса жестким кодом, всегда используйте помощники url, иначе ваше приложение просто перестанет работать при развертывании из-за возможности иметь имя виртуального каталога:
$.ajax({
url: '@Url.Action("save", "home")',
dataType: 'json',
type: 'POST',
data: { inputdata: 'test' },
success: function (result) {
$('#result').html(result.Result);
}
});
Другая проблема, связанная с вашим кодом, заключается в том, что вы не отменяете действие кнопки по умолчанию, а это означает, что, если это ссылка действия или кнопка отправки, запрос AJAX может никогда не успеть выполнить до перенаправления браузера.
Также вам не нужно указывать dataType
для JSON, поскольку jQuery достаточно умен, чтобы вывести это из заголовка ответа Content-Type, отправленного с сервера.
Таким образом, окончательная версия должна выглядеть примерно так:
<script type="text/javascript">
$(function() {
$('#but').click(function () {
$.ajax({
url: '@Url.Action("save", "home")',
type: 'POST',
data: { inputdata: 'test' },
success: function (result) {
$('#result').html(result.Result);
}
});
return false;
});
});
</script>