Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net WebAPI MapHttpRoute问题,操作参数类型为list和bool_Asp.net_.net_Asp.net Web Api_Asp.net Mvc Routing_Asp.net Web Api Routing - Fatal编程技术网

Asp.net WebAPI MapHttpRoute问题,操作参数类型为list和bool

Asp.net WebAPI MapHttpRoute问题,操作参数类型为list和bool,asp.net,.net,asp.net-web-api,asp.net-mvc-routing,asp.net-web-api-routing,Asp.net,.net,Asp.net Web Api,Asp.net Mvc Routing,Asp.net Web Api Routing,我有一个WebAPI的部署时间问题,如果有人能帮助我,我将不胜感激 路线: public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpR

我有一个WebAPI的部署时间问题,如果有人能帮助我,我将不胜感激

路线:

        public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Routes.MapHttpRoute(
            name: "DefaultApi2",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Routes.MapHttpRoute(
            name: "DefaultApi3",
            routeTemplate: "api/{controller}/{action}/{lines}/{swapAxis}",
            defaults: new
            {
                controller = "LVChart",
                action = "Get",
                lines = RouteParameter.Optional, 
                swapAxis = RouteParameter.Optional
            }
        );
    }
行动:

    // GET api/<controller>
    public IEnumerable<string> Get1()
    {
        return new string[] { "value1", "value2" };
    }
    // GET api/<controller>
    [ActionName("Get")]
    public string Get([FromUri] List<Line> lines, bool swapAxis)
    {
        _lineBuilder = new LVLineBuilder(swapAxis);
        string result = BuildLines(lines);
        return result;
    }
当得到是

.../api/LVChart/Get/?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false
我真的没有办法解决这个问题了


谢谢你的帮助,我认为你的定制路线应该高于dafault路线。i、 e DefaultApi2和DefaultApi3应位于DefaultApi1之上

此外,为了恢复完整性,您还可以尝试避免额外的默认路由,只使用默认路由1并执行
HttpGet
/api/LVChart
,如下所示

.../api/LVChart?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false

尝试使用ELMAH之类的工具记录错误,以便可以检查堆栈跟踪,并查看抛出的异常类型。500内部服务器错误可能是操作方法引发的任何异常。已尝试执行此操作,但现在显示安装elmah时出错。。。不敢相信我的luckI怀疑我的maproute有问题?我开始认为这是方法签名。您需要一系列数字,但操作需要一系列线对象。
.../api/LVChart?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false