angular js,asp.net mvc:$ http仅适用于ApiController而不适用于普通Controller吗?

阿维什赫(Avishekh Bharati)

我正在尝试使用angular js 1. *和asp.net mvc 5开发一个简单的表单。当我尝试使用$ http()保存表单数据时,它将执行操作,但是没有传递任何数据。但是,如果我使用$ .post(),它会完美地工作。

有人可以解释一下为什么吗?那是因为我们需要使用ApiController而不是普通mvc的Controller吗?或潜在的问题是什么?

AddEmployeeController.js

(function () {
'use strict';

angular.module('ApplicationModule').controller('AddEmployeeController', function ($scope, SPACRUDService) {
    $scope.Id = 0;

    $scope.employee = {
        FirstName: 'Hello',
        MiddleName: '',
        LastName: '',
        CurrentAddress: '',
        PermanentAddress: '',
        Gender: 'M',
        MobilePhone: '',
        HomePhone: '',
        Email: '',
        CitizenshipNumber: '',
        FatherName: 'n/a',
        DOB: '',
        TaxID: '',
        EmergencyFullName: '',
        EmergencyRelationship: '',
        EmergencyPhoneNo: '',
        EmergencyMobileNo: '',
        IsCitizenshipCertProvided: false,
        IsAcademicCertProvided: false,
        IsExpOrReferenceLetterProvided: false
    };

    $scope.save = function () {

        var Employee = $scope.employee;

        var promisePost = SPACRUDService.post(Employee);

        promisePost.then(function (data) {
            alert("Saved Sucessfully!");
        },
            function (error) {
                $scope.error = "Failed ", error;
            }
        );
    };
});

AddEmployeeController.$inject = ['$location']; 

function AddEmployeeController($location) {
    /* jshint validthis:true */
    var vm = this;
    vm.title = 'AddEmployeeController';

    activate();

    function activate() { }
} })();

Service.js

(function () {
'use strict';

angular.module('ApplicationModule').service("SPACRUDService", function ($http) {

    //gets all employees 
    this.getEmployees = function () {
        var request = $http({
            method: "get",
            url: "/Employee/GetAllEmployees",
        });
        return request;
    }

    //gets a employee by id 
    this.getEmployee = function (Id) {
        var request = $http({
            method: "get",
            url: "/Employee/GetEmployeeById",
            data: id
        });

        return request;
    }

    //creates a new employee 
    //this.post = function (Employee) {
    //    var request = $http({
    //        method: "post",
    //        url: "/Employee/Save",
    //        data: Employee 
    //    });
    //    return request;
    //}

    //for creating a new employee
    this.post = function (emp) {
       // return $.post('/Employee/Save', emp); //this one works
        return $http.post('/Employee/Save', emp); //this doesn't
    }

    //updates the chosen employee
    this.put = function (Employee, Id) {
        var request = $http({
            method: "post",
            url: "/Employee/Update",
            data: { id: Id, employee: Employee }
        });
        return request;
    }       

    //removes the employee
    this.put = function (Id) {
        var request = $http({
            method: "post",
            url: "/Employee/Delete",
            data: id
        });

        return request;
    }
}) })();

EmployeeController

    [HttpPost] 
    public JsonResult Save(Employee emp)
    {
        db.Add(emp);

        return Json(db.SaveChanges());
    }
Ruchan

如果新的.net核心mvc[FormBody]作为Json Data出现,则需要附加到该参数。此行为来自Web API 2。

[HttpPost] 
public JsonResult Save([FormBody]Employee emp)
{
    db.Add(emp);
    return Json(db.SaveChanges());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ASP.NET MVC 分页不适用于 ViewModel

ASP.NET MVC模型绑定不适用于AJAX GET,但适用于Post

ASP.NET MVC - 路由适用于 /home 但不适用于 /home/index

适用于Angular 7的SignalR For ASP.NET MVC(非ASP.NET核心)

AngularJS $ http.put不适用于ASP.NET MVC控制器

C#asp.net核心HTTP POST请求适用于邮递员,但不适用于我的Angular客户端(404错误)

用于聊天的Signal R库不适用于使用mvc asp.net的组

有效的RegEx不适用于ASP.Net MVC RegularExpression属性

jQuery自动完成功能不适用于ASP.NET MVC 5

ASP.NET MVC 路由不适用于特定控制器

ASP.NET MVC Framework 4.5 CSS捆绑软件不适用于主机

ASP.NET MVC 路由不适用于前缀“api”

CSS类不适用于Asp.Net MVC下拉列表

Azure中的捆绑不适用于Bootstrap和JQuery,ASP.NET MVC 5

ASP.NET MVC路由不适用于.html扩展名

ASP.NET MVC模型绑定不适用于项目列表

Ajax请求不适用于asp.net MVC中的本地化

ASP.NET MVC验证不适用于引导程序模式

Javascript 不适用于 asp.net MVC 中多选下拉列表的 onchange 事件

启用SSL的URL(https:// localhost:44301 /)不适用于ASP.Net MVC站点

适用于ASP.net MVC的LTI库

适用于ASP.NET MVC Razor的JQuery Grid

asp.net MVC安全根文件夹仅适用于授权用户

Visual Studio 2017 Docker支持不适用于ASP.Net Core Angular或React项目

数据注释仅适用于ASP.NET吗?

HttpWebRequest/HttpWebResponse 仅适用于控制台应用程序而不适用于 ASP.NET

为什么输出缓存不适用于我的ASP.NET MVC 4应用程序?

ASP.NET MVC 5-部分视图不适用于我的AJAX实时搜索

CSS 样式仅适用于 ASP.NET Core 5.0 MVC-app 中的主视图