我正在尝试从以下发送的请求返回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
答案 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
来自哪里?也许错误就在那里。