1
我已经实现了控制台自托管的WebAPI应用程序。自己托管的WebAPI和多个post和get方法
我的控制器适用于单个获取和发布方法。
我不能怎么implementg多个GET和职位方法ApiController
Startup.cs
class Startup
{
public void Configuration(IAppBuilder app)
{
// Initialize WebAPI
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "apiRoute",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
// Initialize SignalR
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
}
ApiController工作正常
public class MessageController : ApiControllerWithHub<SignalMessageHub>
{
public IEnumerable<MyItem> GetMessages()
{
//Code
}
public HttpResponseMessage PostNewMessage(User user)
{
// code
}
}
ApiController不起作用
public class MessageController : ApiControllerWithHub<SignalMessageHub>
{
public IEnumerable<MyItem> GetMessages()
{
//Code
}
// Cannot route to those methods
[HttpPost()]
[Route("api/Message/NewMessage")]
public HttpResponseMessage PostNewMessage(User user)
{
// code
}
[HttpPost()]
[Route("api/Message/NewMessage2")]
public HttpResponseMessage PostNewMessage2(User user)
{
// code
}
}
尝试将此路由从此routeTemplate:“api/{controller}/{id}”,转换为routeTemplate:“api/{controller}/{action}/{id}”,并移除api/Message',那么你应该可以把它们放在''api/Message/NewMessage'' –
@Dimi对不起,在编辑之前发布! Samvel的回答看起来不错。 – garethb