Я использовал класс JavaScriptSerializer в пространстве имен System.Web.Script.Serialization, чтобы сделать это с большим успехом, и это не может быть проще. Ключ в том, что ваш javascript-объект json, который вы передаете методу контроллера, должен иметь ту же структуру, что и объект .NET, к которому вы пытаетесь его сериализовать. Например, предположим, что это целевой объект .NET в вашем контроллере.
class TestObject {
public string Name {get;set;}
public int Age {get;set;}
}
Тогда ваш объект JavaScript будет выглядеть так ...
{Name: 'Lunchy', Age: 28}
Затем в вашем контроллере, который будет выглядеть примерно так (при условии, что вы преобразуете свой объект javascript перед передачей его в свой контроллер. Я использую метод JSON.stringify (jsObj)).
public JsonResult TestSerialization(string jsonString)
{
var jss = new JavaScriptSerializer();
TestObject to = jss.Deserialize<TestObject>(jsonString);
return Json(TestObject);
}
Это непроверенный код, и я особенно не уверен в моем синтаксисе объекта json, но, надеюсь, вы поняли идею. Также обратите внимание, что MSDN может показать, что класс JavaScriptSerializer был помечен как устаревший, но он был отозван. На самом деле это класс, который MVC-инфраструктура использует для своей сериализации json.