ASP.netController在某些HTTP动词下返回404错误
创始人
2024-09-17 07:30:29
0

这个问题可能是因为ASP.net MVC的默认路由处理不支持一些HTTP动词(例如PUT,DELETE)。你可以针对这些特定的HTTP动词添加自定义路由。

在你的ASP.net MVC应用中,打开Global.asax.cs文件并添加以下代码块:

protected void Application_Start()
{
  // 省略其他代码...
    
  // 添加新的路由规则,用于处理HTTP动词
  routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
  );
    
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
  // 添加处理PUT动词的路由规则
  routes.MapHttpRoute(
    name: "CustomPut",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { action = "Put" },
    constraints: new { httpMethod = new HttpMethodConstraint("PUT") }
  );
    
  // 添加处理DELETE动词的路由规则
  routes.MapHttpRoute(
    name: "CustomDelete",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { action = "Delete" },
    constraints: new { httpMethod = new HttpMethodConstraint("DELETE") }
  );
}

在上面的代码中,我们首先添加了默认的路由规则。然后,我们添加了针对PUT和DELETE动词的自定义路由规则,这些规则指定了"action"参数的值为"Put"和"Delete",并且使用"HttpMethodConstraint"约束来限制HTTP请求的动词类型。

现在,你可以在你的Controller类中添加Put和Delete方法,例如:

public class MyController : ApiController
{
  // GET api/my/5
  public string Get(int id)
  {
    return "value";
  }
    
  // POST api/my
  public void Post([FromBody]string value)
  {
  }
    
  // PUT api/my/5
  public

相关内容

热门资讯

iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...
oppo手机安卓系统换成苹果系... OPPO手机安卓系统换成苹果系统:现实吗?如何操作?随着智能手机市场的不断发展,用户对于手机系统的需...
安卓平板改windows 系统... 你有没有想过,你的安卓平板电脑是不是也能变身成Windows系统的超级英雄呢?想象在同一个设备上,你...
安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
安卓系统上滑按键,便捷生活与高... 你有没有发现,现在手机屏幕越来越大,操作起来却越来越方便了呢?这都得归功于安卓系统上的那些神奇的上滑...
安卓系统连接耳机模式,蓝牙、有... 亲爱的手机控们,你们有没有遇到过这种情况:手机突然变成了“耳机模式”,明明耳机没插,声音却只从耳机孔...
安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...
希沃系统怎么装安卓系统,解锁更... 亲爱的读者们,你是否也像我一样,对希沃一体机上的安卓系统充满了好奇呢?想象在教室里,你的希沃一体机不...