【问题标题】:Success function doesn't fire when I pass a list to it当我将列表传递给成功功能时,它不会触发
【发布时间】:2019-10-25 11:04:51
【问题描述】:

我是 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");
           }
       });
    }

在这种情况下,尽管控制器方法工作正常,但我收到“错误”消息。但是如果我把Controller方法改成这样:

    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);           

    }

现在一切都很好,我收到了成功消息。 谁能告诉我为什么是第一种方法。我想同时拥有一个列表并将其返回给 jquery Ajax 方法。没有一一创建列表。

谢谢

【问题讨论】:

  • 服务器端的错误是什么?
  • @SrinivasanSekar:在Controller我没有任何错误,但是返回到Jquery Ajax,它进入错误部分,错误:函数(){警报(“错误”); }
  • 浏览器控制台?状态码?
  • 错误:函数(jqXHR,textStatus,errorThrown){console.log(textStatus,errorThrown); }
  • 什么都没有发生,什么都没有显示

标签: jquery json ajax asp.net-mvc model-view-controller


【解决方案1】:

这是由于延迟加载而发生的,您可以尝试通过将Configuration.LazyLoadingEnabled 设置为false 来禁用延迟加载。

更多,

Solving "The ObjectContext instance has been disposed and can no longer be used for operations that require a connection" InvalidOperationException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2014-02-26
    相关资源
    最近更新 更多