オブジェクトのリストをコントローラー内のメソッドに送信する Ajax 呼び出しがあります。
私はそれが送信するjsonを見ましたが、すべてが順調に進んでいるようです。しかし、コントローラーに到達すると、適切な数のオブジェクトを含むリストが表示されますが、json で値が正しく設定されていても、それらのプロパティはすべて null です。
例: 10 個のオブジェクトを含むリストがあり、そのすべてに特定の値が設定されたプロパティがあります。呼び出しを実行しますが、リストがコントローラーに到達すると、10 個のオブジェクトがあり、すべてのプロパティが null に設定されます。
誰かがなぜこれが起こるのか知っていますか?
呼び出しは次のとおり
です。大量のデータのため、get の代わりに post を使用する必要がありました。
$("#testeFA").click(function()
{
<% JavaScriptSerializer serializador = new JavaScriptSerializer(); %>
var models = <%: MvcHtmlString.Create(serializador.Serialize(apontamentos)) %>
//"apontamentos" is the name of the List<ApontamentoModel>
$.post('<%: Url.Action("GeraFA") %>', { models: models }, function (sucesso)
{
//do whatever
}, 'json');
});
メソッドは次のとおりです。
public JsonResult GeraFA(List<ApontamentoModel> models) <- this is where the list shows all the objects' properties as null
{
JsonResult result = new JsonResult();
//do whatever
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
これが json の一部です。構造を確認できます。
[{"DocEntry":1,
"LineID":5,
"Data":"01/06/2012",
"HoraInicial":
{"Ticks":288000000000,
"Days":0,
"Hours":8,
"Milliseconds":0,
"Minutes":0,
"Seconds":0,
"TotalDays":0.33333333333333331,
"TotalHours":8,
"TotalMilliseconds":28800000,
"TotalMinutes":480,
"TotalSeconds":28800},
"CodigoCliente":"C00013",
"Cliente":"Client Name",
"CodigoProjeto":283,
"Projeto":"Project Name",
"CodigoServico":18,
"TipoServico":"",
"CodigoDespesa":0,
"Despesa":"",
"Quantidade":0,
"NumeroChamado":0,
"NumeroFA":10,
"Apropria":true,
"Narrativa":"teste",
"NomeConsultor":"Name"},
{"DocEntry":1,
"LineID":13 //and so on to all the other elements
私はMVC2を使用しています