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

前端之家收集整理的这篇文章主要介绍了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的默认值.

猜你在找的jQuery相关文章