我的ajax电话
var PojedinacniPageController = function ($scope, $http, $routeParams) {
$scope.contactID = $routeParams.covikId;
var odgovor = $http.post('/Home/GetContact', $scope.contactID);
odgovor.success(function (data, status) {
$scope.kontakt = data;
});
odgovor.error(function (data, status) {
alert(status);
});
}
PojedinacniPageController.$inject = ['$scope', '$http', '$routeParams'];
mvc 4,HomeController,GetContact动作:
[HttpPost]
public ActionResult GetContact(int kontaktID)
{
var kontakt = _db.Kontakti.Find(kontaktID);
return Json(kontakt, JsonRequestBehavior.AllowGet);
}
不工作,错误500.请帮忙
答案 0 :(得分:0)
试试这样:
var odgovor = $http.post('/Home/GetContact', { kontaktID: $scope.contactID });
此外,您无需设置JsonRequestBehavior.AllowGet
,因为您的控制器操作只能通过POST动词访问:
[HttpPost]
public ActionResult GetContact(int kontaktID)
{
var kontakt = _db.Kontakti.Find(kontaktID);
return Json(kontakt);
}
这就是说,这是一个非常奇怪的控制器动作,它只返回可用POST动词访问的数据。如果控制器操作没有修改服务器上的任何状态,而是返回你的情况下的数据,我宁愿使用GET动词。
所以:
public ActionResult GetContact(int kontaktID)
{
var kontakt = _db.Kontakti.Find(kontaktID);
return Json(kontakt, JsonRequestBehavior.AllowGet);
}
然后:
var odgovor = $http.get('/Home/GetContact/' + $scope.contactID);