此問題可能已被答覆了上百次,但我找不到合適的資源。在WebApi項目(VS提供的默認項目)中,我有如下的ValuesController。具有不同參數名稱的Web api路由方法
public string Get(int id)
{
return "value";
}
[HttpGet]
public string FindByName(string name)
{
return name;
}
[HttpGet]
public string FindById(int id)
{
return id.ToString();
}
在WebApiConfig.cs中,我有以下路由映射。
config.Routes.MapHttpRoute(
name: "actionApiById",
routeTemplate: "api/{controller}/{action}/{Id}",
defaults: new { action = "FindById", Id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "actionApi",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: new { name = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
現在只有FindById()動作正在工作,當我嘗試在瀏覽器中。爲什麼其餘的api調用返回「沒有找到與請求匹配的HTTP資源」
如何獲得所有三種方法的工作?而不使用AttributeRouting。我缺乏web api的基本概念嗎? (我認爲是)
你的意思是你不能調用「Get」方法?如果是這樣,請分享您從客戶端調用方法的方式? – Thanigainathan