Я перехожу с OData на OData. Net core. Я использовал шаблон пути в ODataRoute. Мой шаблон содержит символ _
:
public class StudentController : BaseController<Student>
{
[EnableQuery]
[ODataRoute("Student_Get(Id={key})")]
public override IActionResult Get([FromODataUri] string key)
{
return Get("Id", key);
}
}
В ASPNetCore.OData я получаю эту ошибку:
System.InvalidOperationException: шаблон пути 'Student_Get (Id = {key }) »для действия« Получить »в контроллере« Студент »не является допустимым шаблоном пути OData. Ресурс не найден для сегмента Student_Get. в Microsoft.As pNet .OData.Routing.Conventions.AttributeRoutingConvention.GetODataPathTemplate (префикс String, String pathTemplate, IServiceProvider requestContainer, String controllerName, String actionName) в Microsoft.As pNet .OData.Routing.Conventions.AttributeRoutingConvention. > c__DisplayClass11_0.b__1 (маршрут ODataRouteAttribute) в System.Linq.Enumerable.WhereSelectArrayIterator 2.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator
1.MoveNext () в Microsoft.As pNet .OData.Routing.Conventions.AttributeRoutingConvention.BuildAttributeMappings (контроллер Microsoft. Как pNet .OData.Routing.Conventions.AttributeRoutingConvention.get_AttributeMappings () в Microsoft.As pNet .OData.Routing.Conventions.AttributeRoutingConvention.SelectAction (RouteContext routeContext) в Microsoft.As pNet .OData.Routing.ODataAction .SelectCandidates (контекст RouteContext) в Microsoft.AspNetCore. Mvc .Routing.MvcRouteHandler.RouteAsyn c (контекст RouteContext) в Microsoft.AspNetCore.Routing.Route.OnRouteMatched (RouteCo ntext context) в Microsoft.AspNetCore.Routing.RouteBase.RouteAsyn c (контекст RouteContext) в Microsoft.AspNetCore.Routing.RouteCollection.RouteAsyn c (контекст RouteContext) в Microsoft.AspNetCore.Builder.RouterMiddleware.RouterMiddleware. ) в Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (контекст HttpContext)