Как включить специальные символы атрибута шаблона ODataRoute в ASP. Net Core - PullRequest
0 голосов
/ 11 июля 2020

Я перехожу с 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)

...