gpt4 book ai didi

c# - 用 ASP .NET 重写 HTTP 方法

转载 作者:可可西里 更新时间:2023-11-01 17:14:56 24 4
gpt4 key购买 nike

因为大多数浏览器只支持 HTTP GET 和 POST,所以有一个可以重写 HTTP 方法的 HttpHandler 会很有用。

HTTP 方法将设置一个隐藏字段:

<form method="POST" action="...">
<input type="hidden" name="_method" value="PUT">
...
</form>

如果用户提交,将发送一个 POST 请求和一个 IHttpHandler应该替换请求 HttpMethod,但它是一个 read-only property in .NET .

如何在 .NET 中重写 HTTP 方法?

最佳答案

在 mvc(版本 2+)中,您可以使用 HtmlHelper.HttpMethodOverride 助手,它使用所需的操作方法创建隐藏的输入值。

http://msdn.microsoft.com/en-us/library/ee402924.aspx

这将创建这个隐藏输入(用于删除):
<input name="X-HTTP-Method-Override" type="hidden" value="DELETE" />

更多信息:

http://geekswithblogs.net/michelotti/archive/2010/01/08/implementing-a-delete-link-with-mvc-2-and-httpmethodoverride.aspx

更新:

深入了解它在 MVC 管道中的工作原理,实际上是 MVC(ActionMethodSelectorAttribute、ActionInvoker、RedirectToRoute)处理这个而不是RouteModule 和我之前想的一样。

您可以在 MVC 源代码(来自 codeplex)中查找它...它非常简单。比较有意思的部分在HttpRequestBaseExtensions和HttpRequestExtensions

关于c# - 用 ASP .NET 重写 HTTP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5314781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com