切换案例对象并通过url参数获取它们

时间:2019-02-12 19:13:37

标签: c# asp.net

我正在C#中运行一个API,并将其作为默认的webapi启动,因此它获得了.slide-6996 img {display:none;} 网址。

在我的控制器中,我正在使用/api/<controller>方法来通过开关盒检索某些图表对象,但是在POSTMAN上进行测试时,两个参数都起作用,但是我只能得到第一个对象,而我不能似乎找出原因

这是我的控制器

GET

因此,请求以public class GraphController : ApiController { public Graph Get(string param) { //string[] arrayListGraphic = param.Split('|'); switch (param) { // case "GF001": return new GraphDAO().graph01(); case "GF002": return new GraphDAO().graph02(); case "GF003": return new GraphDAO().graph03(); // case "GF004": return new GraphDAO().graph04(); // case "GF005": return new GraphDAO().graph04(); // case "GF006": return new GraphDAO().graph01(); } return null; } } 的形式出现,但是当我希望获取所有参数数据时,我的响应只会得到我的第一个参数数据!

我想念什么?谢谢

2 个答案:

答案 0 :(得分:0)

这是我的建议:

public class  GraphController : ApiController
{
    public IEnumerable<Graph> Get(string[] params)
    {

List<Graph> graphsList = new List<Graph>();

foreach(var param in params) {
        //string[] arrayListGraphic = param.Split('|');

        switch (param)
        {
            // case "GF001": return new GraphDAO().graph01();
            case "GF002": graphsList.Add(new GraphDAO().graph02()); break;
            case "GF003": graphsList.Add(new GraphDAO().graph03()); break;
            // case "GF004": return new GraphDAO().graph04();
            // case "GF005": return new GraphDAO().graph04();
            // case "GF006": return new GraphDAO().graph01();

        }


      }

       return graphsList;
    }
}

使用如下网址调用您的API: http://localhost:xxxx/api/graph/?params=GF002&params=GF003

答案 1 :(得分:0)

如果要向控制器传递多个字符串,则将需要接受字符串数组,而不是像现在这样的单个字符串。实际上,您的网址应该localhost:xxxx/api/graph/?param=GF002

如果要同时接收两个字符串,则需要在控制器操作中接受一个字符串数组,例如

public Graph Get(string[] params) 
{
   //implementation
}

,您的网址应该看起来像您所拥有的一样。