我在MVC 5 WebAPI应用程序中有这个控制器,我似乎无法弄清楚如何形成调用它的URL。我一直得到404.试过...... / ssa,/ ssa / ssamedians,/ ssa / ssamedians?titles = abc ...我错过了什么?
public class ssaController : ApiController
{
public IHttpActionResult getSsaMedians(string Titles = "")
{
SsaDB db = new SsaDB();
try
{
IEnumerable<Title_Medians> medians = db.getTitleMedians(Titles, null, null);
System.Web.HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
return Ok(medians);
}
catch
{
return NotFound();
}
}
还有一些名为getSsaMediansByAaa()和getSsaMediansByBbb()的动作。一旦我摆脱了routeTemplate中的api /,我现在得到一个“找到了匹配请求的多个动作”。
答案 0 :(得分:1)
您的方法中有一个参数,这意味着您需要在网址中添加额外的链接。
Examlple.com/DirToApi/getSsaMedians/YourString
您可能还想检查App_Start中的RouteConfig文件
答案 1 :(得分:1)
打开 WebApiConfig.cs 文件并添加:
config.Routes.MapHttpRoute(
name: "SSATitles",
routeTemplate: "api/{controller}/{action}/{Titles}",
defaults: new { controller = "ssa", action = "getSsaMedians", Titles = UrlParameter.Optional }
);
有关webapi路由的更多信息,请点击此处:
http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api