在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的需求是什么。
答案 0 :(得分:-1)
http堆栈的POST和PUT方法之间的主要区别是PUT是幂等的,而POST不是。这意味着假设您从客户端应用运行一个循环,并且在每次迭代中都对服务器进行PUT调用。在这种情况下,服务器将产生相同的结果。但是,如果它是POST,则服务器将产生多个资源。