Контроллер API реализует 2 метода POST с разными URI, вызов одного POST не маршрутизируется правильно - PullRequest
0 голосов
/ 10 мая 2019

Я реализовал ниже 3 методов в моем apicontroller->

EnableFlowAnalytics:

Action = POST, MethodURI = api / ConfigurationApiController / EnableFlowAnalytics, карта маршрута = config.Routes.MapHttpRoute («Маршрут EnableFlowAnalytics», «api / ConfigurationApiController / EnableFlowAnalytics», новый {контроллер = «ConfigurationApi»});

DeleteFlowAnalytics:

Action = POST, MethodURI = api / ConfigurationApiController / DeleteFlowAnalytics, карта маршрута = config.Routes.MapHttpRoute ("Маршрут DeleteFlowAnalytics", "api / ConfigurationApiController / DeleteFlowAnalytics", новый {контроллер = "ConfigurationApi" }9);

GetFlowAnalytics:

Action = GET, MethodURI = api / ConfigurationApiController / GetFlowAnalyticsConfig / subscription / {subscriptionGuid} / resourceGroups / {resourceGroupName} / networkSecurityGroups / {nsgName}, карта маршрутов = config.Routes.MapHttpRoute («GetFlowAnalyticsConfig Route», «api / ConfigurationApiController / GetFlowAnalyticsConfig / subscriptions / {subscriptionGuid} / resourceGroups / {resourceGroupName} / networkSecurityGroups / {nsgName};« nsgName}; «nsgName};« nsgName}; «nsgName};) nA

Когда я вызываю эти три метода из моего клиентского кода, EnableFlowAnalytics и GetFlowAnalyticsConfig правильно маршрутизируются, но DeleteFlowAnalytics не маршрутизируется, вместо удаления вызов снова включается в EnableFlowAnalytics. Я не могу понять эту логику маршрутизации, поскольку URI не является двусмысленным, он совершенно другой.

public class ConfigurationApiController : ApiController
{
   [System.Web.Http.Route("api/ConfigurationApiController/DeleteFlowAnalytics")]
[System.Web.Http.ActionName("DeleteFlowAnalytics")]
public void DeleteFlowAnalytics(
    string nsgResourceId)
{
     //implementation}

[System.Web.Http.Route("api/ConfigurationApiController/EnableFlowAnalytics")]
[System.Web.Http.ActionName("EnableFlowAnalytics")]
public void EnableFlowAnalytics(
EnableFlowAnalyticsArgs enableFlowAnalytics)
{
     //implemetation
 }
...