c# - 没有从 Razor 页面发送 Http Put

标签 c# rest razor asp.net-core-mvc 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 中有一个简单的 Action :

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

我尝试通过开发者工具检查表单是否正确生成: enter image description here

这对我来说似乎没问题,但是,当我尝试发送表单时出现错误: enter image description here

似乎整个请求都以某种方式转换为 HttpGet 操作。 有什么想法可能是错误的吗?

在范围之外,我有一个单独的 REST API,其中此类操作被定义为 HttpPut 并且它可以与 Angular 和其他与 API 通信的客户端应用程序正常工作,所以我不看不出为什么我不应该在 ASP.NET Core MVC 应用程序中也使用 HttpPut。我错过了什么吗? 干杯

最佳答案

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

关于c# - 没有从 Razor 页面发送 Http Put,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625646/

相关文章:

c# - 如何在 C# 中将鼠标光标位置设置为屏幕上的指定点?

c# - 生产服务器上的 MVC 4 验证属性问题

c# - 如何修改 Windows 窗体中另一个类的 PictureBox? C#

Java SSLException : hostname in certificate didn't match in android application

java - 带有Spring Boot的RESTful Web服务中的授权和身份验证

python-2.7 - 使用Docker Remote API运行exec时出现错误500

javascript - 将 MVC ViewModel 转换为外部 .js 文件中的 Javascript 对象

razor - 为什么 dotnet 命令行构建在 MVC View 错误时失败,而 VS2017 没有?

c# - 为什么 Cdecl 调用在 "standard"P/Invoke 约定中经常不匹配?

c# 一种将多个数组复制/合并到一个数组中的更好方法