在 MVC4 应用程序中,我将视图模型传递给控制器操作方法 AsyncUpdateOrderLine:
function updateQuantity(sender) {
...
var model = @Html.OrderToJson(Model)
$.ajax({ type: "POST",
url: "/Order/AsyncUpdateOrderLine",
datatype: "json",
contentType: 'application/json',
data: JSON.stringify({ orderLineId: orderLineId, quantity: quantity, myOrder: model }),
success: function (msg) {
...
}
});
}
当我在运行时检查 myOrder 参数时,我注意到我的模型的 DateTime 属性(例如 OrderDate)没有正确反序列化:1/1/0001。反序列化模型中的其他属性看起来不错。我的 OrderToJson 方法如下所示:
public static MvcHtmlString OrderToJson(this HtmlHelper html, MyViewModel viewModel)
{
var json = new JavaScriptSerializer().Serialize(viewModel);
return MvcHtmlString.Create(json);
}
我已经尝试将 DateTime 属性的种类设置为 Utc,但这对我没有任何作用。我还制作了一个小型控制台应用程序来测试序列化和反序列化 DateTime 属性。不用说,在那个示例应用程序中没有问题。这可能与 MVC 反序列化 JSON 字符串的方式有关。有什么技巧可以解决这个问题吗?
问候,尼尔斯