Как я могу передать идентификатор и маршрут к контроллеру с Entity Framework - PullRequest
2 голосов
/ 04 мая 2019

Я хочу знать, как передать сообщение и маршрут, как показано ниже, с сообщением?

// что-то / запись / recordcoworkers / StartDate / 13

или

// что-то / запись / recordcoworkers / 13 / StartDate

Вот мой контроллер

[Produces("application/json")]
[Route("api/RecordCoworkers")]
public class RecordCoworkersController : Controller
{
 // POST: api/RecordCoworkers/StartDate
    [HttpPost("StartDate")]
    public async Task<IActionResult> PostRecordCoworkerStartDateAsync([FromRoute] int id, [FromBody] RecordCoworker recordCoworker)
    {
        if (!Auth.IsRequestAuthorized(_context, User.Identity.Name, "Mpid2_Entry_Write"))
        {
            return BadRequest();
        }

        var result = await RecordCoworkersContext.PostRecordCoworkerStartDateAsync(_context, id, recordCoworker);

        switch (result)
        {
            case HttpResult.NoContent:
                return Ok();
            case HttpResult.NotFound:
                return NotFound();
            default:
                return BadRequest();
        }
    }
}

а вот и аксиос после звонка

axios.post('/api/RecordCoworkers/StartDate/' + id, {
  id: coworkerId,
  startDate: value,
}).then(function(response) {
  // Show response
  console.log(response);
}).catch(function(error) {
  // Show error
  console.log(error);
});

1 Ответ

1 голос
/ 04 мая 2019

Если вы хотите сопоставить с этим маршрутом /api/recordcoworkers/startdate/13, вам нужно добавить параметр id в ваш HttpPost следующим образом:

[HttpPost("StartDate/{id}")]

Или, если вы хотите использовать /api/recordcoworkers/13/startdate, тогда вы 'Очевидно, понадобится обратный порядок:

[HttpPost("{id}/StartDate")]

Подробнее о маршрутизации вы можете прочитать в официальных документах Microsoft: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.2#route-name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...