Обнаружен собственный цикл привязки для свойства Ошибка в MVC

Я использую MVVM в нокауте. Когда я пытаюсь Searialize объекта в mvc, я получил следующую ошибку. Может кто-нибудь, пожалуйста, помогите мне в этом.

Строка ошибки: возвращает Json (JsonConvert.SerializeObject(resultwrapper), JsonRequestBehavior.AllowGet);

Ошибка. Исключительный цикл регистрации ссылок для свойства "HotelDetails" с типом "DCL.HotelDetails". Path 'HotelDetails [3].HotelImages [0]'.

Моя модель

 public class HotelDetails : Entity
    {

        public HotelDetails()
    {
        this.HotelImages = new List<HotelImages>();
    } 
        [Key]
        public virtual Guid Id { get; set; }

        public virtual Guid HotelChainId { get; set; }

        public virtual int OldHotel { get; set; }

        public virtual string StarRating { get; set; }

        public virtual string PostalCode { get; set; }

        public virtual string Longtitude { get; set; }

        public virtual string Latitude { get; set; }

        public virtual string DestinationID { get; set; }

        public virtual string HotelLocation { get; set; }

        public virtual string PhoneNumber { get; set; }

        public virtual string Address { get; set; }

        public virtual string HotelArea { get; set; }

        public virtual string HotelType { get; set; }

        public virtual string HotelTheme { get; set; }


        //public virtual Destination Destination { get; set; }

        public virtual List<HotelImages> HotelImages { get; set; }

    }

Мой код С#

 IEnumerable<IGrouping<string, DCL.JsonMatrixModel.availableHotels>> quer =
      from ff in ddd
      from ss in ff.availableHotels
      group ss by ss.hotelCode;


            List<HotelDetails> lsthoteldetails = new List<HotelDetails>();
            List<HotelImages> lsthotelimages = new List<HotelImages>();


            HotelDetails _hoteldetails;


            foreach (var y in quer)
            {
                _hoteldetails = new HotelDetails();


                string ss = y.Key;
                _hoteldetails = db.HotelDetails.Where(x => x.Code == ss).FirstOrDefault();
                if (_hoteldetails != null)
                {
                    lsthotelimages = db.HotelImages.Where(x => x.HotelDetailsId == _hoteldetails.Id).ToList();
                    _hoteldetails.HotelImages = lsthotelimages;
                    lsthoteldetails.Add(_hoteldetails);
                }





            }
           // resultwrapper.key = "kdkdk";
            resultwrapper.LoadData();

            resultwrapper.HotelDetails = lsthoteldetails;



            return Json(JsonConvert.SerializeObject(resultwrapper), JsonRequestBehavior.AllowGet);
-1
источник поделиться
1 ответ

Если у HotelImages есть ссылка на HotelDetails, тогда вы, вероятно, получите круговую ссылку. Вы можете предотвратить это с помощью параметра PreserveReferencesHandling = PreserveReferencesHandling.Objects. Например

string json = JsonConvert.SerializeObject(resultwrapper, Formatting.Indented, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects });

См. Документацию

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос