如何形成调用此Web API函数的URL?

时间:2014-05-08 13:53:31

标签: asp.net-mvc asp.net-mvc-5 asp.net-mvc-5.1

我在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 /,我现在得到一个“找到了匹配请求的多个动作”。

2 个答案:

答案 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

相关问题