当可以在Aspnet MVC中的Post中完成所有操作时,Put方法有什么需要?

时间:2019-05-01 05:57:46

标签: .net asp.net-mvc http-post http-put

在MVC中, HttpPost 用于在服务器中创建资源,而 HttpPut 用于更新服务器中的现有资源(如果资源不存在,则创建一个新资源)。

让我们看下面的模型类。

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

要在数据库中创建新记录,我在控制器中创建了HttpPost类型的操作方法,并将雇员对象从视图发送到控制器,并填充了ID属性以外的所有属性值。

由于模型中没有ID属性,因此我将在应用程序中执行创建逻辑。

现在,如果我想更新此记录,那么我仍然可以使用相同的HttpPost方法,但是ID的这次值不为空。

因此,如果我可以通过同一个HttpPost方法执行“更新”和“插入”操作,那么HttpPut的需求是什么。

1 个答案:

答案 0 :(得分:-1)

http堆栈的POST和PUT方法之间的主要区别是PUT是幂等的,而POST不是。这意味着假设您从客户端应用运行一个循环,并且在每次迭代中都对服务器进行PUT调用。在这种情况下,服务器将产生相同的结果。但是,如果它是POST,则服务器将产生多个资源。