asp.net-mvc – $.ajax发布到MVC控制器返回内部服务器错误:参数字典包含空条目

参数字典包含非可空类型’System.Int32’的参数’appId’的空条目,用于’HLIT_TicketingMVC.Controllers.TicketController’中的方法’System.Web.Mvc.ContentResult CheckForInstaller(Int32)’.可选参数必须是引用类型,可空类型,或者声明为可选参数.

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)

当我从方法签名中删除参数时,它确实触及了内部的断点,所以它是需要某种属性的签名,或者我认为消息没有正确构建.

最佳答案
删除这个:

contentType: 'application/json; charset=utf-8',

MVC不会将JSON解析为int.您需要application / x-www-form-urlencoded的默认值.

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...