Http Put 不是从剃刀页面发送的
Http Put is no being sent from a razor page
我尝试使用 ASP.NET 核心标签助手创建一个像这样的简单 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 通信,所以我看不出有任何理由不应该在 ASP.NET Core MVC 应用程序中也使用 HttpPut
。我错过了什么吗?
干杯
尝试将此装饰器添加到您的控制器操作中
[ValidateAntiForgeryToken]
对我来说,看起来您的视图正在发送防伪令牌,但您的操作并不期望它。
HTML 表单不支持 PUT、DELETE 等:仅支持 GET 和 POST。如果您需要发送 PUT,则需要使用 AJAX 来发送。
我尝试使用 ASP.NET 核心标签助手创建一个像这样的简单 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 通信,所以我看不出有任何理由不应该在 ASP.NET Core MVC 应用程序中也使用 HttpPut
。我错过了什么吗?
干杯
尝试将此装饰器添加到您的控制器操作中
[ValidateAntiForgeryToken]
对我来说,看起来您的视图正在发送防伪令牌,但您的操作并不期望它。
HTML 表单不支持 PUT、DELETE 等:仅支持 GET 和 POST。如果您需要发送 PUT,则需要使用 AJAX 来发送。