Зачем нужен метод Put, когда все можно сделать в Post в Aspnet MVC? - PullRequest
0 голосов
/ 01 мая 2019

В MVC HttpPost используется для создания ресурса на сервере, а HttpPut используется для обновления существующего ресурса на сервере (если ресурс не существует, создайте новый ресурс).

Давайте посмотрим на класс модели ниже.

public class Employee
{
   public int ID {get; set;}
   public string FirstName {get; set;}
   public string LastName {get; set;}
}

Чтобы создать новую запись в базе данных, я создал метод действия типа HttpPost в контроллере и отправил объект сотрудника изview to controller со всеми заполненными значениями свойства, кроме свойства ID.

Поскольку свойство ID отсутствует в модели, я выполню логику создания в приложении.

Теперь, если я хочучтобы обновить эту запись, тогда я все еще могу использовать тот же метод HttpPost, но это значение времени ID не равно нулю.

Итак, если я могу одновременно выполнять «Обновление» и «Вставка» из одного и того же метода HttpPost, то чтонужна HttpPut.

1 Ответ

0 голосов
/ 01 мая 2019

Основное различие между методами POST и PUT стека http в том, что PUT является идемпотентным, а POST - нет. Это означает, что, скажем, вы запускаете цикл из клиентского приложения и на каждой итерации выполняете PUT-вызов к серверу. В этом случае сервер выдаст те же результаты. Но если это POST, сервер будет производить несколько ресурсов.

...