Функция успеха не срабатывает, когда я передаю ей список - PullRequest
0 голосов
/ 11 июня 2019

Я новичок в MVC, AJax и JSON. Я создаю список букв в соответствии с параметром, передаваемым в контроллер, как это

 public JsonResult RefreshTable(int fld_id)        
{            
    List<Referring> letterList = new List<Referring>();
    using (WebECartableEntities dc = new WebECartableEntities())
    {
        letterList = dc.Referrings.Where(u =>u.fld_Id == fld_id).ToList();
    }
    return Json(letterList, JsonRequestBehavior.AllowGet);    
}

LetterList заполнен списком писем. и я получаю результат в jquery Ajax, как это:

  var CategoryClick= function(clicked_id) {
       $.ajax({
           type: "Post",
           url: '/Main/RefreshTable',
           data: { fld_id: clicked_id },
           success: function (reutrnList) {
               alert("success");
           }
           ,
           error: function () {
               alert("Error");
           }
       });
    }

в этом случае я получаю сообщение «Ошибка», хотя метод контроллера работает правильно. Но если я изменю метод Контроллера на это:

    public JsonResult RefreshTable(int fld_id)
    {           
        List<Referring> letterList = new List<Referring>();
        using (WebECartableEntities dc = new WebECartableEntities())
        {
            var items= dc.Referrings.Where(u =>u.fld_Id == fld_id).ToList();
            foreach (var item in items)
            {
                Referring reff = new Referring();
                reff.ID = item.ID;
                reff.SenderPosition = item.SenderPosition;
                reff.Subject = item.Subject;
                letterList.Add(reff);
            }
        }
        var reutrnList = letterList;
        return Json(reutrnList, JsonRequestBehavior.AllowGet);           

    }

Теперь все в порядке, и я получаю сообщение об успехе. Может кто-нибудь сказать мне, почему это в первом методе. Я хочу иметь список одновременно и вернуть его в метод jjery Ajax. не создает список по одному.

Спасибо

1 Ответ

1 голос
/ 11 июня 2019

Это происходит из-за отложенной загрузки, вы можете попробовать отключить отложенную загрузку, установив Configuration.LazyLoadingEnabled в false.

Подробнее,

Решение "ObjectContextэкземпляр удален и больше не может использоваться для операций, требующих подключения "InvalidOperationException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...