как настроить маршрут в webapi c #, чтобы вместо {id} можно было использовать любое имя переменной - PullRequest
0 голосов
/ 03 июля 2019

Я настроил условную маршрутизацию, как показано ниже в WebApiConfig.cs

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

Это прекрасно работает для конечной точки API.

[ActionName("DeleteDataDictionary")]
public void DeleteDataDictionary(int id)
{
    //my code
}

Но я хочу использовать любое значимое имя для переменной вместо id.
Например:

[ActionName("DeleteDataDictionary")]
public void DeleteDataDictionary(int dataDictionaryId)
{
    //my code
}

[ActionName("DeleteMenu")]
public void DeleteMenu(int menuId)
{
    //my code
}

Проблема в том, что это работает, только когда я даю имя параметра в качестве идентификатора.

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Попробуйте использовать FromRouteAttribute

Пример:

[ActionName("DeleteDataDictionary")]
public void DeleteDataDictionary( [FromRoute("id")] int dataDictionaryId)
{
    // your code
}
0 голосов
/ 03 июля 2019

Вместо этого используйте атрибут маршрутизации.

[Route("api/delete-dictionary/{dataDictionaryId:int}")]
public void DeleteDataDictionary(int dataDictionaryId)
{
    //my code
}

И отправьте запрос следующим образом,

/api/delete-dictionary/1
...