簡體   English   中英

Angular post 和 web api C#

[英]Angular post and web api C#

我嘗試使用 AngularJS 和 C# 控制器使用 Web Api 制作聯系頁面。

上周我一直在研究它,但沒有找到適合我的正確答案。

我也嘗試通過 AJAX、JQUERY 和 angular 發布。

控制器代碼:

    [HttpPost, AllowAnonymous]
    [Route("ContactUs")]
    public void Post(ContactUsProperties EmailDetails)
    {
        //Code for sending email to the website owner...
    }

角JS代碼:

app.controller("ContactController", function ($scope, $http) {



$scope.EmailDetails = {
    Phone: null,
    Email: null,
    Name: null,
    Subject: null,
    Body: null
};

$scope.EmailDetailsArr = [
    $scope.Phone,
    $scope.Email,
    $scope.Name,
    $scope.Subject,
    $scope.Body
];

$scope.EmailDetails = {
    Phone: $scope.Phone,
    Email: $scope.Email,
    Name: $scope.Name,
    Subject: $scope.Subject,
    Body: $scope.Body
};
$scope.CreateEmail = function () {

    console.log($scope.EmailDetails);
    console.log(JSON.stringify($scope.EmailDetails));

    $http({
        method: 'POST',
        url: '/ContactUs',
        data: JSON.stringify($scope.EmailDetail)
    });
}

路由正在工作,我知道這會導致調試器在我每次單擊“發送”按鈕時都會阻止我。 我嘗試將其作為數組、JSON、XML、Everything 和對象仍然為空!,我嘗試使用 [FROMBODY] 仍然沒有。

老實說,如果 POST 需要更改 Web Api 配置,所以我沒有更改..

請伙計們幫我解決這個問題,解釋將愉快地接受。 謝謝 :)

您應該使用[FromBody]以獲得Parameter Binding

當參數具有 [FromBody] 時,Web API 使用 Content-Type 標頭來選擇格式化程序。

在此示例中,內容類型為application/json

public void Post([FromBody] ContactUsProperties EmailDetails)
$http({
    method: 'POST',
    url: '/ContactUs',
    data: JSON.stringify($scope.EmailDetail) <-- you are missing an 's' at the end
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM