asp .net Angularjs ajax httpPost

时间:2015-01-01 22:26:53

标签: asp.net ajax angularjs

我的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.请帮忙

1 个答案:

答案 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);
相关问题