Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Http Put不是从razor页面发送的_C#_Rest_Razor_Asp.net Core Mvc_Put - Fatal编程技术网

C# Http Put不是从razor页面发送的

C# Http Put不是从razor页面发送的,c#,rest,razor,asp.net-core-mvc,put,C#,Rest,Razor,Asp.net Core Mvc,Put,我尝试使用ASP.NET核心标记帮助程序创建一个简单的HTML表单,如下所示: <form asp-action="RemoveScheduledTenancyDeletion" method="put" asp-route-tenancyId="@Model.Tenancy.TenancyId"> <div class="form-group"> <input type="subm

我尝试使用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>
我试图通过开发人员工具检查表单是否正确生成:

但是,在我看来,当我尝试发送表单时,我发现一个错误:

似乎整个请求以某种方式被转换为
HttpGet
操作。 你知道什么是错的吗

在此范围之外,我有一个单独的REST API,其中此类操作被定义为
HttpPut
,它可以与Angular和其他与API通信的客户端应用程序一起工作,因此我不认为有任何理由不在ASP.NET核心MVC应用程序中使用
HttpPut
。我错过什么了吗?
干杯

尝试将此装饰器添加到控制器操作中

[ValidateAntiForgeryToken]

在我看来,您的视图似乎正在发送防伪令牌,但您的操作并不期待它。

HTML表单不支持PUT、DELETE等:仅支持GET和POST。如果需要发送PUT,则需要使用AJAX。默认情况下,ASP.NET Core会全局应用ValidationAntiForgeryTokenAttribute。无论如何,这与这里的任何事情都无关。PUT不是HTML表单支持的动词。我使用Visual Studio。我认为最好添加一个功能,自动检测HTML
表单
method=“put”
的使用情况,并通知开发人员不能使用它,例如,当试图编译项目时,我认为这可能是故意这样做的。它不是一个HTML规范,只是没有浏览器支持它。这可能会在未来某个时候发生变化(尽管我对此表示怀疑)。不过,Intellisense只会遵循规范,而不是浏览器如何选择实现上述规范。
[ValidateAntiForgeryToken]