Asp.net mvc MVC Web API,获取子项

Asp.net mvc MVC Web API,获取子项,asp.net-mvc,rest,asp.net-web-api,asp.net-4.5,Asp.net Mvc,Rest,Asp.net Web Api,Asp.net 4.5,我有一个包含两个表的数据库。每个城市与特定国家有联系的国家和城市 在我的ASP.NETWebAPI中,我可以通过运行CountriesController的get请求获取国家列表。我还可以通过电子邮件获得一个国家的详细信息 如果我想要一个国家所有城市的列表,其余的查询URL应该是?以及城市的细节 如何在ASP.NETWebAPI中实现这一点 这样如何,在global.asax.cs中定义一个额外的api路由,如下所示: routes.MapHttpRoute( name: "CityD

我有一个包含两个表的数据库。每个城市与特定国家有联系的国家和城市

在我的ASP.NETWebAPI中,我可以通过运行CountriesController的get请求获取国家列表。我还可以通过电子邮件获得一个国家的详细信息

如果我想要一个国家所有城市的列表,其余的查询URL应该是?以及城市的细节


如何在ASP.NETWebAPI中实现这一点

这样如何,在global.asax.cs中定义一个额外的api路由,如下所示:


routes.MapHttpRoute(
    name: "CityDetail",
    routeTemplate: "api/countries/{countryid}/cities/{cityid}",
    defaults: new { controller = "Cities" }
);
然后定义一个新的CitiesController,如下所示:


public class CitiesController : ApiController
{
    // GET /api/values
    public IEnumerable Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET /api/values/5
    public string Get(int countryId, int cityid)
    {
        return "value";
    }

    // POST /api/values
    public void Post(string value)
    {
    }

    // PUT /api/values/5
    public void Put(int countryId, int cityid, string value)
    {
    }

    // DELETE /api/values/5
    public void Delete(int countryId, int cityid)
    {
    }
}

不用说,您可能想稍微改进一下控制器的实现:)

非常感谢!为了返回给定国家的城市集合,我必须实现://get/api/values public IEnumerable get(int countryId){return new string[]{“value1”,“value2”};}