【问题标题】:Can't fetch the data in MVC by ajax无法通过ajax获取MVC中的数据
【发布时间】:2021-11-06 07:28:00
【问题描述】:

我想使用 Ajax 从 ASP.NET MVC 中的数据库中获取数据。

这是我的控制器:

public JsonResult EditCustomer(int Id)
{
        Customer customer = new Customer();

        if (Request.IsAjaxRequest())
        { 
            using (SEntities dc = new SEntities())
            { 
                customer = dc.Customers.Where(a => a.ID == Id).SingleOrDefault();
                customer.Events = null;
            }
        }

        return Json(customer, JsonRequestBehavior.AllowGet);
}

这是视图中的 Ajax

var EditCustomer = function (Id) {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/BasicInfo/EditCustomer',
        data: { 'Id': Id },
        success: function (data) {
            $('#txtFirstName').val(data.FirstName);
            $('#txtLastName').val(data.LastName);
            $('#txtPhone').val(data.Phone);
            $('#txtID').val(data.ID);
            $('#hdUserID').val(data.UserId);
            $('#txtNote').val(data.ClientNote);
            $("#myModalEdit").modal("show");

        },
        error: function () {
            alert('Failed EditCustomer');
        }
    })
}

虽然来自控制器的变量 customer 已正确填充,但在视图中我只收到错误“Failed EditCustomer”。

什么可能导致这个问题?

【问题讨论】:

  • “来自控制器的客户已正确填充”你是怎么做到的?你检查过浏览器的开发者工具吗?有什么错误?
  • @Serge:我跟踪它,在控制器中我可以跟踪客户变量并填充客户数据,但是当它进入视图时,输入错误函数和警报('失败的 EditCustomer ');弹出
  • 你检查浏览器“控制台”了吗?
  • @Serge:如果我在 ajax 的错误部分设置 Console.log(response),我会收到:jquery-2.1.1.js:8623 POST localhost:50869/BasicInfo/EditCustomer500 (Internal Server Error )
  • 这通常意味着 EditCustomer 操作内部的错误。试试邮递员。它通常给出最好的错误描述。只删除 Request.IsAjaxRequest

标签: ajax asp.net-mvc


【解决方案1】:

我只是通过添加解决了它

 dc.Configuration.LazyLoadingEnabled = false;

在控制器中获取数据之前。并且成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 2015-07-20
    • 1970-01-01
    • 2018-10-11
    • 2015-09-13
    • 2012-04-10
    • 1970-01-01
    • 2016-11-14
    相关资源
    最近更新 更多