【问题标题】:Update method does not update更新方法不更新
【发布时间】:2022-08-03 17:00:48
【问题描述】:

到目前为止,get/delete/create 有效,但是当我尝试我的更新方法时它不起作用。奇怪的是api正在循环。任何帮助,将不胜感激

我的 api 看起来如何:

[
  {
    \"KlantId\": 5,
    \"Mailaddres\": \"ToBeEdited\",
    \"Wachtwoord\": \"ToBeEdited\",
    \"Klantvoornaam\": \"ToBeEdited\",
    \"Tussenvoegsel\": \"ToBeEdited\",
    \"Klantachternaam\": \"ToBeEdited\",
    \"Bedrijfsnaam\": \"ToBeEdited\",
    \"Telefoonnummer\": \"500\"
  }
]

邮递员请求

IRepository.cs:

public interface IRepository<T>
{
    Task<List<T>> GetData();
    Task<T> GetDataById(int id);
    Task<T> InsertData(T service);
    Task<T> UpdateData(T service);
    Task<bool> DeleteData(T service);
}

KlantRepository.cs:

public class KlantRepository: IRepository<KlantModel>
{
    private readonly DataContext _context;

    public async Task<KlantModel> UpdateData(KlantModel klant)
    {
        Console.WriteLine(\"Update method invoked\");

        _context.Update(klant).Property(x => x.KlantId).IsModified = false;
        _context.SaveChanges();

        await UpdateData(klant);
        return klant;
    }
}

KlantController.cs:

 [ApiController]
 [Route(\"api/Klant\")]
 [Produces(\"application/json\")]
 public class KlantController : ControllerBase
 {

    private readonly IRepository<KlantModel> _repo;
    private readonly IMapper _mapper;

    public KlantController(IRepository<KlantModel> repo, IMapper mapper)
    {
        _repo = repo;
        _mapper = mapper;
    }

    [HttpPut(\"{id}\")]
    public async Task<ActionResult<KlantModel>> UpdateService( int id, KlantModel klant)
    {
        Console.WriteLine(\"Update Service Method Invoked\");

        Console.WriteLine(\"KlantId: \" + klant.KlantId + \" Klant-Bedrijfsnaam: \"  + klant.Bedrijfsnaam);

        try
        {
            if (klant is null)
            {
                return BadRequest(\"klant object is null\");
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(\"Invalid model object\");
            }

            var klanten = await _repo.GetDataById(id);

            Console.WriteLine(\"employeeToUpdate-Id: \" + klanten.KlantId + \" employeeToUpdate-Bedrijfsnaam: \"  + klanten.Bedrijfsnaam );

            if (klanten is null)
            {
                return NotFound();
            }

            _mapper.Map(klant, klanten);

            await _repo.UpdateData(klanten);

            return NoContent();
        }
        catch (Exception ex)
        {
            return StatusCode(500, $\"Internal server error: {ex.Message}\");
        }
        
    }

第 1 部分来自 KlantController.cs

A 应该是来自 Postman 的信息

B 应该是来自数据库的信息

第 2 部分是他不断循环的 Klant 存储库

    标签: c# api rest postman


    【解决方案1】:

    它正在循环,因为您正在循环:)

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2017-12-20
      • 1970-01-01
      • 2012-04-14
      • 2014-10-27
      相关资源
      最近更新 更多