首页 > 解决方案 > 当所有事情都可以在 Aspnet MVC 中的 Post 中完成时,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 需要什么。

标签: .netasp.net-mvchttp-posthttp-put

解决方案


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


推荐阅读