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