Словарь параметров содержит пустую запись для параметра 'appId' не допускающего NULL-значения типа 'Система. Int32' для метода 'Система. Сеть. Mvc. ContentResult CheckForInstaller(Int32)' в 'HLIT_TicketingMVC.Controllers. TicketController'. Дополнительный параметр должен быть ссылочным типом, nullable типом, или быть объявлен как дополнительный параметр.
function SubmitAjax(url, message, successFunc, errorFunc) {
$.ajax({
type:'POST',
url:url,
data:message,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success:successFunc,
error:errorFunc
});
};
Объект данных создается следующим образом:
var message={"appId":application.val()};
Я также попробовал строку jsonified:
var message="{'appId':"+application.val()+"}";
и
var message="{'appId':'"+application.val()+"'}";
Я проверил это, сообщение проникает с надлежащим международным значением, прежде чем оно попытается отправить. Мышь по отладчику последний раз показала: {appId="6"}
Сигнатура метода на контроллере:
public ContentResult CheckForInstaller(int appId)
Когда я удаляю параметр из сигнатуры метода, он действительно поражает точку останова внутри, таким образом, это - или атрибуты необходимости подписи некоторого вида, или сообщение не создается правильно, я верю.
Уберите это:
contentType: 'application/json; charset=utf-8',
MVC не собирается разбирать JSON на int
. Вам нужно значение по умолчанию application/x-www-form-urlencoded
.
Я думаю, может быть, вы отправляете json контроллеру, попробуйте это
function SubmitAjax(url, message, successFunc, errorFunc) {
$.ajax({
type:'POST',
url:url,
data:"appId=" + application.val(),//not sure where you get the value from in your current code
dataType: 'json',
success:successFunc,
error:errorFunc
});
};