Http Put 不是从剃刀页面发送的

Gol*_*Age 2 c# rest put razor asp.net-core-mvc

我尝试使用 ASP.NET Core 标签助手创建一个像这样的简单 HTML 表单:

 <form asp-action="RemoveScheduledTenancyDeletion" method="put" asp-route-tenancyId="@Model.Tenancy.TenancyId">          
      <div class="form-group">              
           <input type="submit" value="Remove sheduled tenancy deletion" class="btn btn-default" />
      </div>
 </form>
Run Code Online (Sandbox Code Playgroud)

TenancyController里面有一个简单的动作:

    [HttpPut]
    public async Task<IActionResult> RemoveScheduledTenancyDeletion(Guid tenancyId)
    {
          //some logic here
         return RedirectToAction(nameof(List));
    }
Run Code Online (Sandbox Code Playgroud)

我尝试通过开发人员工具检查表单是否正确生成: 在此处输入图片说明

对我来说似乎没问题,但是,当我尝试发送表单时出现错误: 在此处输入图片说明

似乎以某种方式将整个请求转化为HttpGet动作。任何想法可能是错误的?

超出范围,我有一个单独的 REST API,其中定义了此类操作,HttpPut并且它可以与 Angular 和其他与 API 通信的客户端应用程序正常工作,因此我看不出有任何理由不应该将其HttpPut用作在 ASP.NET Core MVC 应用程序中很好。我错过了什么吗?干杯

Chr*_*att 6

HTML 表单不支持 PUT、DELETE 等:仅支持 GET 和 POST。如果您需要发送 PUT,则需要使用 AJAX 来执行此操作。