Хотя он не позволяет сериализовать циклические ссылки, в .NET есть атрибут [ScriptIgnore], который вы можете поместить в свои ViewModels, что предотвратит сериализацию свойств для JSON и, таким образом, предотвратит ошибку циклической ссылки, столь распространеннуюсо сложными отношениями в MVC.
Кроме того, вместо того, чтобы возвращать вашу модель как есть, поможет использование LINQ или анонимных объектов для возврата только тех свойств, которые необходимо представить в сценарии на стороне клиента.Вы снижаете производительность, сводя к минимуму объем данных, отправляемых клиенту.