Словарь параметров содержит пустую запись для параметра 'appId' ненулевого типа 'System.Int32' для метода 'System.Web.Mvc.ContentResult CheckForInstaller (Int32)' в 'HLIT_TicketingMVC.Controllers.TicketController'. Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.
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()+"'}";
Я подтвердил, что сообщение передается с правильным значением int, прежде чем оно попытается опубликовать. Указатель мыши над отладчиком недавно показал: {appId="6"}
Подпись метода на контроллере:
public ContentResult CheckForInstaller(int appId)
Когда я удаляю параметр из сигнатуры метода, он попадает внутрь точки останова, так что это либо сигнатура, требующая каких-либо атрибутов, либо, как мне кажется, сообщение не выстроено должным образом.