未设置MVC可空属性的AJAX请求

时间:2014-02-25 19:59:04

标签: ajax asp.net-mvc json

我有一些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在客户端获得了它的值,但是没有将其设置为服务器端。正如你所看到的,我有其他可以为空的字段,他们正在使他们的数据集正常,所以我想知道为什么只有改变的字段不起作用。

提前感谢您的帮助。

0 个答案:

没有答案