Почему параметр id не обновляется из URL-адреса в моем методе POST ASP.NET Core?C#

Место общения программистов C#
Ответить
Anonymous
 Почему параметр id не обновляется из URL-адреса в моем методе POST ASP.NET Core?

Сообщение Anonymous »

У меня есть метод POST в ASP.NET Core, который принимает параметр id из URL-адреса. Когда я меняю идентификатор в URL-адресе и отправляю форму, идентификатор в методе POST не отражает обновленное значение из URL-адреса.
Моя точка зрения подтверждает отсутствие поля идентификатора. в моей форме.
@model GenreUpdateVM

Код: Выделить всё




Update
Cancel


в моем get int идентификатор поступает из Route, я прав?

Код: Выделить всё

[HttpGet]
public async Task Update(int id)
{
var request = new RestRequest($"Genres/{id}", Method.Get);
var response = await _restClient.ExecuteAsync(request);

if (!response.IsSuccessful)
{
TempData["Err"] = response.Data.ErrorMessage;
return RedirectToAction(nameof(Index));
}

return View(response.Data.Data);
}
отсюда, если быть точным

Код: Выделить всё

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
а как насчет моего метода POST?

Код: Выделить всё

[HttpPost]

public async Task Update(int id, GenreUpdateVM vm)
{
var request = new RestRequest($"Genres/{id}", Method.Put);
request.AddJsonBody(vm);
var response = await _restClient.ExecuteAsync(request);

if (!response.IsSuccessful)
{
ModelState.AddModelError(response.Data.PropertyName, response.Data.ErrorMessage);
return View();
}
return RedirectToAction(nameof(Index));
}
почему, когда я меняю свой идентификатор в маршруте, мой метод POST все равно получает значение из метода GET?
например: /Home/Update/4 вот как это выглядит, когда я нахожусь в разделе GET, но затем меняю его на /Home/Update/10 и ожидаю ошибку, потому что у меня нет ни одного по идентификатору 10, но он все равно обновил тот, у которого есть идентификатор 4. Помогите мне понять, как работает маршрутизация, передача и привязка в ASP MVC. Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... ost-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»