若在ASP.NET中使用HTTP PUT和DELETE方法时返回404状态码,可能是由于默认情况下这些方法在IIS中被禁用。为了解决这个问题,可以按照以下步骤进行操作:
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.EnsureInitialized();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
Response.Flush();
}
}
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
// 允许PUT和DELETE方法
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}
}
通过执行以上操作,应该能够解决ASP.NET中HTTP PUT和DELETE方法返回404状态码的问题。