参数字典包含非可空类型’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的默认值.