【发布时间】:2015-08-20 20:45:22
【问题描述】:
我正在尝试创建一个restful api,遵循这个Tutorial
问题是,当调用链接获取对象时,它可以工作:
[HttpGet]
[ActionName("GetDemByID")]
但是当我尝试调用这个时:
[HttpPost]
[ActionName("CreateDemByID")]
我收到 405 错误。
我的路由器似乎没问题:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我是否缺少拥有完整 CRUD REST api 的东西? 我什至不通过调试模式下的方法...
Here我看到ActionName也可以用于post方法,所以不是方法的问题,而是路由器的问题,或者注解...
有没有比我实际使用的更好的教程(使用动作名称,没有 EF)?
编辑: 正如建议的那样,这仅仅是由于调用,在 Get 中进行的。
使用 RESTClient 在浏览器中进行测试,它允许我选择我想要使用的方法,现在它工作正常。
在制作 REST Api 时,模块非常有用。我以为没有必要。
谢谢。
【问题讨论】:
-
您请求的
url是什么? -
@AmitKumarGhosh 我要求localhost:50050/api/demindividuelles/GetDemByID 第一和localhost:50050/api/demindividuelles/CreateDemByID 第二。
-
显示您的
Action签名以及您是如何调用该操作的。如果 Fiddler 正常工作,则您的调用代码中还有其他问题。 -
显示您的控制器签名以及您如何调用它..
标签: c# asp.net-web-api