使用 MVC 和 AngularJS 和 Entity Framework 编辑表格行

Editing a tablerow with MVC and AngularJS and Entity Framework

我正在尝试创建一个使您能够编辑注册用户的功能。我正在尝试编辑名字、姓氏和电子邮件。 在这种方法中,我得到了写入输入字段的内容,但 Id 为空,因此 editedUser 自然也始终为空。如何将用户 ID 放入方法中,以便将 editedUser 设置为正在编辑的用户?

[HttpPost]
        public User EditUser([FromBody]EditUserModel model)
        {
            var editedUser = db.Users.FirstOrDefault(u => u.UserID == model.Id);

            editedUser.FirstName = model.FirstName;
            editedUser.LastName = model.LastName;
            editedUser.Email = model.Email;

            db.SaveChanges();
            return editedUser;

我的 js 函数是什么样的:

服务:

editUser: function (user) {
                return $http.post('/api/userspa', user)

控制器:

 $scope.editUser = function () {
                var user = $scope.selectedUser;
                UserService.editUser(user).success(function (data) {
                    console.log('Updated', data)
                })

来自开发者控制台:“ 您点击了:Object {UserID: 58, FirstName: "test1", LastName: "testsson", Email: "testEdit@test.se", RegistrationDate: "2015-01-14T15:48:04.777"}"

编辑:添加了 js 控制器。

angular.module('myApp')
    .controller('userCtrl', ['$scope', '$http', 'UserService', function ($scope, $http, UserService) {

        UserService.getUsers()
            .success(function (data) {
                $scope.users = data;
            })
            .error(function () {
                $scope.error = "Couldnt load data or there was none.";
            }
            )

        $scope.selectUser = function (user) {
            UserService.getUser(user.UserID).success(function (data) {
                console.log("user ", data);
                $scope.selectedUser = user;
            })
        }

        $scope.editUser = function () {
            var user = $scope.selectedUser;
            UserService.editUser(user).success(function (data) {
                console.log('Updated', data)
            }).
            error(function () {
                $scope.error = console.log('Something went wrong')
            });
        }

根据我们在评论中讨论的内容,解决方法是也从客户端发送 ID,这样您就可以在模型中使用它,并且空问题得到解决。