以下是設置:具有特定JsonConverter的MVC3控制器
我有一些MVC控制器,旨在被jQuery ajax請求使用。一個正常的要求會有些看起來是這樣的:
$.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);
}
這適用於傳遞給控制器的大多數對象完全正常的,但在這種特殊情況下的一個被傳遞的對象的屬性需要以特定的方式進行反序列化。
我已經添加了一個以前用MVC4 Web API的JsonConverter,但在這種情況下,我需要將它應用於常規的mvc控制器。
我試着註冊JsonConverter在我的Global.asax是這樣的:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new GrizlyStringConverter());
但到目前爲止,還沒有能夠反序列化對象。
是的,謝謝達林。我已經這樣做了,對於大多數物體來說它工作正常。除了具有「GrizlyString」屬性的對象外。 我需要找到一種方法來指定使用自定義的JsonConverter。 – amhed 2012-07-15 15:05:33
您可以將您的自定義轉換器作爲構造函數參數傳遞給我已顯示的JsonDotNetValueProviderFactory。 – 2012-07-15 16:19:30
我嘗試了這樣的反序列化: var deserializeObject = JsonConvert.DeserializeObject(bodyText,new ExpandoObjectConverter(),new GrizlyStringConverter()); –
amhed
2012-07-15 19:43:05