控制台日志返回HTML页面文本而不是JSON

时间:2015-06-18 12:50:28

标签: c# jquery asp.net ajax

我正在尝试从以下发送的请求返回JSON格式的模型:

$(document).ready(function() {
        (function(){
            console.log("ran");
            $.ajax({
                type: "GET",
                url: "https://clas.uconn.edu/Employees/Edit/22",
                success: function(data) {
                    console.log("Success: " + data);
                    empData = data;
                }
           });
       })();
    });

我的此方法的控制器是:

// GET: Employees/Edit/5
    public ActionResult Edit(int? id)
    {
        var id = employee.id;
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        if (employee == null)
        {
            return HttpNotFound();
        }

        return new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        Console.WriteLine("error");
    }

但是我在consol日志中获得了一个完整的html页面,即使这些控制器操作都没有返回视图。有什么想法吗?

修改 添加数据类型后,我在控制台日志中收到错误消息:

GET http://localhost:59909/Employees/EmployeeLookupDisplay   
net::ERR_CONNECTION_REFUSED

3 个答案:

答案 0 :(得分:0)

它返回整个页面,因为您的请求在某处出错。

在您的ajax调用中添加一个块错误,在console.log上添加xhr.您将获得有关此错误的更多信息。

您可以尝试在POST上发出请求并检查C#代码上下文的属性。有时添加dataType并且编码有助于请求。

另外,在浏览器开发者工具上检查您的请求的返回状态。在chrome中,网络选项卡显示所有请求及其状态。

答案 1 :(得分:0)

试试这个,但根据你的代码,它总是返回HTTP而不是foud,这是HTML页面。如果你有员工的数据。我的意思是你的控制器动作成功没有任何错误。然后你可以试试。

     $.ajax({
            type: "GET",
            url: "https://clas.uconn.edu/Employees/Edit/22",
            dataType: "json",
            success: function(data) {
                console.log("Success: " + data);
                empData = data;
            }

答案 2 :(得分:0)

也许不是仅返回new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };,而是return Json(employee, JsonRequestBehavior.AllowGet);'

我看到的另一件事:

在你正在做的第一行var id = employee.id; - > employee来自哪里?也许错误就在那里。