1

我有一个基本的 asp.net 自托管应用程序,它使用 HttpConfiguration 类并包含以下路由:

config.Routes.MapHttpRoute(
    name: "login",
    routeTemplate: "login",
    defaults: new { controller = "Login", action = "Get" }
);

我想根据请求中包含的 HTTP 动词定义操作,而不是在 URL 中指定。

IE

curl http://domain/login -X GET

应该调用类Get上的方法LoginController。和

curl http://domain/login -X POST -H 'Content-Length: 1' -d 'x'

应该在控制器类中调用 Post 'Post' 方法。如果我将路由配置调整为

config.Routes.MapHttpRoute(
    name: "login",
    routeTemplate: "login/{action}",
    defaults: new { controller = "Login", action = "Get" }
);

然后curl到:

curl http://domain/login/post -X POST -H 'Content-Length: 1' -d 'x'

但这是在 http 请求和 URI 中指定 post 动词(我不希望这样做)。

===== 编辑

列维在这里的答案:https ://stackoverflow.com/a/2143991/3114742解决了我的问题

4

0 回答 0