c # web api сервис с несколькими строковыми параметрами не вызывается - PullRequest
0 голосов
/ 06 ноября 2018

Здравствуйте, я не понимаю, как передать несколько строковых параметров в веб-службу c # web api.

я называю следующий URL

http://mylocalhost/api/values/par1/par2/par3

но он выполняется методом Get без параметров. Не могли бы вы сказать мне, что не так?

Вот мой контроллер:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace WebApplication1.Controllers
{
    public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

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

        // GET api/values/5/6
        public string Get(int id, int id2)
        {
            return "value" + id2;
        }

        // GET api/values/string/string/string
        [HttpGet]
        [System.Web.Http.Route("api/values/f1/f2/f3")]
        public HttpResponseMessage Get(string id, string id2, string id3)
        {
            return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("test", System.Text.Encoding.UTF8, "application/json") };
        }


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

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }
}

WebApiConfig имеет этот код:

открытый статический void Register (конфигурация HttpConfiguration) { // Servizi e configurazione dell'API Web

    // Route dell'API Web
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

    config.Routes.MapHttpRoute(
        name: "DefaultApi3",
        routeTemplate: "api/{controller}/{id}/{id2}",
        defaults: new { id = RouteParameter.Optional  }
    );

    config.Routes.MapHttpRoute(
       name: "DefaultApi2",
       routeTemplate: "api/{controller}/{path}/{file}/{file2}",
       defaults: new { path = "", file = RouteParameter.Optional, file2 = RouteParameter.Optional  }
   );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...