セットアップは次のとおりです。
jQuery ajax リクエストによって消費されることを意図した MVC コントローラーがいくつかあります。通常のリクエストは次のようになります。
$.ajax("/Solicitor/AddSolicitorToApplication", {
data: putData,
type: "POST", contentType: "application/json",
success: function (result) {
//My success callback
}
}
});
私のコントローラーは次のようになります。
[HttpPost]
public ActionResult InsertLoanApplication(MortgageLoanApplicationViewModel vm)
{
var mortgageLoanDTO = vm.MapToDTO();
return Json(_mortgageLoanService.UpdateMortgageLoanApplication(mortgageLoanDTO), JsonRequestBehavior.DenyGet);
}
これは、コントローラーに渡されるほとんどのオブジェクトで問題なく機能しますが、この特定のケースでは、渡されるオブジェクトのプロパティの 1 つを特定の方法で逆シリアル化する必要があります。
以前に MVC4 Web API で使用した JsonConverter を追加しましたが、この場合は通常の mvc コントローラーに適用する必要があります。
次のように、JsonConverter を global.asax に登録しようとしました。
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new GrizlyStringConverter());
しかし、これまでのところ、オブジェクトを逆シリアル化できませんでした。