2015-08-22 8 views
3

У меня есть проект веб-API и простой класс с несколькими свойствами, некоторые отмечены <JsonIgnore>.JsonIgnore не работает в System.Web.Mvc.Controller

В моем контроллере MVC я положил Return Json(instanceOfMyClass, JsonRequestBehavior.AllowGet). Все члены сериализованы. Я положил Return Json(Of MyClass)(instanceOfMyClass) в свой WEBAPI-контроллер. Присутствуют только члены, которых я намерен сериализовать.

Как я могу игнорировать эти свойства независимо от контроллера, который будет сериализован.

ответ

6

JsonResult в MVC фактически не использует JSON.NET, поэтому [JsonIgnore] не работает. Вместо этого он использует класс JavaScriptSerializer.

Чтобы сделать JavaScriptSerializer, пропустите объект, вы можете указать атрибут [ScriptIgnore] на свой тип объекта.

Альтернативой может быть создание пользовательского ActionResult, в котором используется код JsonConvert JSON.NET для сериализации объекта, который затем соблюдает атрибут [JsonIgnore].

+0

спасибо, что ты отличный –

Смежные вопросы