c# - 没有从剃须刀页面发送 Http Put
问题描述
我尝试使用 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>
在TenancyController
里面有一个简单的动作:
[HttpPut]
public async Task<IActionResult> RemoveScheduledTenancyDeletion(Guid tenancyId)
{
//some logic here
return RedirectToAction(nameof(List));
}
似乎以某种方式将整个请求转换为HttpGet
操作。有什么想法可能是错的吗?
在范围之外,我有一个单独的 REST API,其中定义了此类操作,HttpPut
并且它可以与 Angular 和其他与 API 通信的客户端应用程序一起工作,所以我看不出有任何理由不应该使用HttpPut
as在 ASP.NET Core MVC 应用程序中很好。我错过了什么吗?干杯
解决方案
HTML 表单不支持 PUT、DELETE 等:仅支持 GET 和 POST。如果您需要发送 PUT,则需要使用 AJAX 来执行此操作。