asp .net Angularjs ajax httpPost

asp .net Angularjs ajax httpPost

我的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。请帮助

这样试试:

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

这就是说,这是一个非常奇怪的控制器操作,只有 returns 数据可以通过 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);