Когда я обновляю свои существующие данные System.Reflection.TargetException ERROR - PullRequest
0 голосов
/ 14 апреля 2020

Я использую веб-API для вставки обновления, чтения, удаления данных из базы данных, используя angularjs ajax, но когда я обновляю свои данные, я получаю сообщение об ошибке.

Мой код веб-API для обновления:

    [Route("api/UpdateAdmin")]
    [HttpPost]
    public bool UpdateAdmin(Admin admin)
    {
        using (FirstdbEntities ent = new FirstdbEntities())
        {
            Admin updatedAdmin = (from c in ent.Admins where c.Name == admin.Name select 
 c).FirstOrDefault();   //here i get the error System.Reflection.TargetException.
            updatedAdmin.City = admin.City;
            updatedAdmin.Role = admin.Role;
            ent.SaveChanges();
        }
        return true;
    }

мой angularjs код, который реализуется при нажатии кнопки:

   $scope.Update = function (x) {
            var admin = $scope.adminlist[x];
            var httprequest = $http({
                method: 'POST',
                url: "api/UpdateAdmin/",
                data: JSON.stringify(admin),
                dataType: 'json',
                headers: { "Content-Type": "application/json" }
            })
            .then(function (data) {
                alert('Data Updated successfully.');
                $scope.adminlist.push(data.data);
            });
        }

моя кнопка:

<input type="button" class="bg-danger" value="Update" ng-click="Update(ax)" />

Пожалуйста, посоветуйте мне, что делать do.Thanks !!

1 Ответ

0 голосов
/ 14 апреля 2020

Похоже, вы не можете правильно отправить параметр admin на сервер. Таким образом, параметр admin всегда равен нулю в вашем методе UpdateAdmin. Вам нужно изменить использование JSON.stringify.

Таким образом, этот

 data: JSON.stringify(admin)

должен быть таким, как показано ниже в AJAX call:

data: JSON.stringify({admin: admin})

И дело не в проблеме, но я бы добавил проверку на ноль тоже:

using (FirstdbEntities ent = new FirstdbEntities())
{
    Admin updatedAdmin = ent.Admins.FirstOrDefault(i=> i.Name == admin.Name);
    if(updatedAdmin != null)
    {
        updatedAdmin.City = admin.City;
        updatedAdmin.Role = admin.Role;
        ent.SaveChanges();
    }
}
return true;
...