我有一個web api控制器,直到現在它只有一個動作,一切正常。我試圖添加第二個動作,但無法使其可以訪問。在webapi控制器中有多個動作
這裏是工作的行動方法簽名和方法體的剪斷,因爲我遇到的麻煩的動作
[Route("data/add")]
[HttpPost]
public HttpResponseMessage Add(Message item)
{
using(var ctx = new dbContext())
{
// add new message using EF. snip
}
}
我的方法簽名和方法體的剪斷的是:
[Route("data/check")]
[HttpPost]
public HttpResponseMessage Check(DateTime date)
{
using (var ctx = new dbContext())
{
// check if any messages after param date
// snip
}
}
這裏是我的路由配置。
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Notification",
routeTemplate: "{controller}/check"
);
}
有趣的是我的其他行動,這是工作的人,可以通過
數據訪問/加
這似乎違背了路由。
編輯:我回來從郵差的信息是
沒有HTTP資源發現,請求URI「http://localhost:62243/data/check」
你正在使用哪個版本的Asp.Net? – Nikolaus
v4.0.30319 @Nikolaus – andrewb
您的控制器上是否有路由屬性? – Nikolaus