我有一些Json,我正在使用ajax发回;该对象在客户端使用JavaScript构建,并在MVC端由具有相同属性名称的C#对象接收。我有一个可空和不可空的字段混合,一切都很好。在进行修改时,我将一个不可为空的long属性更改为可以为空,因为它不会在所有情况下都被设置。
的JavaScript
var dataToSend = {
TestId1: 1,
TestId2: 2,
TestId3: 3,
Action: 'add'
};
$.ajax({
url: '/testRequestUrl/SaveTestRequest',
type: 'POST',
contentType: "application/json",
data: JSON.stringify(dataToSend)
}).done(function(returnData) {
alert(returnData);
});
MVC
public class TestRequest
{
public int? TestId1 { get; set; }
public int? TestId2 { get; set; }
public long? TestId3 { get; set; }
public PostAction Action { get; set; }
}
[HttpPost]
public ActionResult SaveTestRequest(TestRequest request)
{
// Do some processing and return the result
var result = DoSomeProcessing(request);
return Json(result);
}
最初TestId3不可为空,一切正常;一旦我将TestId3更改为nullable,只有该字段停止从客户端加载数据。我已经检查了我的JSON,并且TestId3在客户端获得了它的值,但是没有将其设置为服务器端。正如你所看到的,我有其他可以为空的字段,他们正在使他们的数据集正常,所以我想知道为什么只有改变的字段不起作用。
提前感谢您的帮助。