наверняка вы можете, но это, как правило, сложнее, если вы не планируете хорошо.
Давайте предположим, что ваш класс Owin Startup
устанавливается по умолчанию WebAPI маршруты с app.UseMvc()
Этот код ниже работает отлично и возвращает ["value1", "value2"]
независимо от значения {id}
curl http://localhost:5000/api/values/135/foo/bar/
[Route("api/values/{id}/foo/bar")]
public partial class ValuesController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
это работает штраф также, возвращая указанное значение в параметре маршрута в этом случае 135
curl http://localhost:5000/api/values/135/foo/bar/
[Route("api/values/{id}/foo/bar")]
public partial class ValuesController : Controller
{
[HttpGet]
public int GetById(int id)
{
return id;
}
}
Но если объединить эти 2 действия в том же контроллере, он будет возвращать 500, поскольку есть 2 способа, которые могут реагировать ваш запрос.
В ядре ASP.NET мы также можем использовать RoutePrefix? –
Я не использовал .NET Core, поэтому не мог сказать, извините. Если вы используете .NET Core, я бы добавил это к вашему вопросу. –