1
私のコントローラには2つのアクションメソッドがあります。以下はコントローラ 'User'に 'Name'という名前と一致するアクションが見つかりませんでした
[RoutePrefix("user")]
public class UserController: ApiController
{
[HttpGet]
public IEnumerable<User> Get()
{
return new User.GetUsers();
}
[Route("{name}")]
[HttpGet]
public IEnumerable<User> GetByName(string name)
{
return new User.GetUsers(name);
}
}
私のルートの設定ファイルである
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { controller = "user", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiGet",
routeTemplate: "{controller}/{id}",
defaults: new { action = "Get", id= RouteParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
私はAPIで何が間違っていることを確認していない以下の
localhost/User - - Working
localhost/User/Jane -- Not working throwing error.
を呼び出しています。
で大会をベースと属性のルートを混在しないようにしてくださいあなたは、ルーティング属性を有効にする必要が '私は、このような愚かなことを見逃したのかわからない規則ベースのルーティング – Nkosi