Две проблемы
1) Ваше имя параметра метода действия - rowId
, но вы отправляете roleId
2) Метод JSON.stringify
создает строковое представление JavaScriptобъект, который вы передаете ему.С помощью этого метода вы отправляете строку JSON объекта в качестве свойства data
параметра метода $.ajax
.При отправке строки JSON вашего объекта JS вы должны указать свойство contentType
опции для application/json
.
$.ajax({
type: "POST",
url: '@Url.Action("Delete_Role", "Admin")',
dataType: 'json',
data: JSON.stringify({
rowId: '@Guid.NewGuid()', // dummy GUID for testing
applicationId: '@Guid.NewGuid()'
}),
contentType:"application/json"
}).done(function (response) {
console.log(response);
}).fail(function() {
console.log("Error on Deletion");
});
Теперь $.ajax
добавит заголовок запроса Content-Type
к вызовусо значением application/json
.Как часть привязки модели, связыватель модели по умолчанию будет считывать это значение заголовка запроса, а затем решит прочитать данные из тела запроса (полезная нагрузка запроса).
Кроме того, поскольку вы не отправляете сложный объект, вы делаетене нужно отправлять строковую версию JSON.Просто передайте объект JavaScript как свойство data
, и $.ajax
отправит его как данные формы.
$.ajax({
type: "POST",
url: '@Url.Action("Delete_Role", "Admin")',
data: {
rowId: '@Guid.NewGuid()', // dummy GUID for testing
applicationId: '@Guid.NewGuid()'
}
}).done(function (response) {
console.log(response);
}).fail(function() {
console.log("Error on Deletion");
});
В этом случае $.ajax
отправит application/x-www-form-urlencoded
в качестве значения заголовка запроса Content-Type
, и механизм связывания сможет правильно его прочитать и отобразить ваши параметры.
Вы также можете удалить dataType
в вызове ajax (, который я сделал во втором фрагменте кода ).JQuery Ajax будет угадывать правильный тип из заголовка ответа и использовать его для дальнейшего анализа данных, полученных от вызова сервера.В вашем случае вы вызываете метод Json
для возврата ответа JSON от вашего метода действия, который отправит application/json
в качестве значения заголовка Content-Type
.