2017-02-13 3 views
0

У меня есть маршрутизация атрибута MVC, включенная наряду с маршрутизацией конвенции. Я получаю эту ошибку каждый раз, когда запускаю приложение.Как избавиться от этой ошибки, вызванной маршрутизацией MVCAttribute?

Рядный ограничение распознаватель типа «DefaultInlineConstraintResolver» не смог решить следующие инлайн ограничение: «строка». Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и где оно заработало в коде.

Сведения об исключении: System.InvalidOperationException: Рядный ограничение распознаватель типа «DefaultInlineConstraintResolver» был не в состоянии решить следующие инлайн ограничение: «строка».

Вот трассировки стека:

[InvalidOperationException: Рядный ограничение распознаватель типа 'DefaultInlineConstraintResolver' не смог решить следующие инлайн ограничение: 'строка'.]
System. Web.Mvc.Routing.InlineRouteTemplateParser.GetInlineConstraint (группа constraintGroup, булева isOptional, IInlineConstraintResolver constraintResolver) +389
System.Web.Mvc.Routing.InlineRoute TemplateParser.ParseRouteTemplate (String routeTemplate, IDictionary 2 defaults, IDictionary 2 ограничения, IInlineConstraintResolver constraintResolver) +488
System.Web.Mvc.Routing.DirectRouteFactoryContext.CreateBuilder (Строка шаблона, IInlineConstraintResolver constraintResolver) +308
System.Web.Mvc. Routing.DirectRouteFactoryContext.CreateBuilderInternal (String шаблон) +48
System.Web.Mvc.Routing.DirectRouteFactoryContext.CreateBuilder (String шаблон) System.Web.Mvc.RouteAttribute.System.Web.Mvc.Routing. IDirectRouteFactory.CreateRoute (DirectRouteFactoryContext контекста) +80
System.Web.Mvc.Routing.DefaultDirectRouteProvider.CreateRouteEntry (String areaPrefix, String controllerPrefix, IDirectRouteFactory завод, IReadOnlyCollection 1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction) +115
System.Web.Mvc.Routing.DefaultDirectRouteProvider.CreateRouteEntries(String areaPrefix, String controllerPrefix, IReadOnlyCollection
1 фабрика, IReadOnlyCollection 1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction) +155
System.Web.Mvc.Routing.DefaultDirectRouteProvider.GetActionDirectRoutes(ActionDescriptor actionDescriptor, IReadOnlyList
1 фабрика, IInlineConstraintResolver constraintResolver) +188
системы .Web.Mvc.Routing.DefaultDirectRouteProvider.GetDirectRoutes (controllerDescriptor controllerDescriptor, IReadOnlyList 1 actionDescriptors, IInlineConstraintResolver constraintResolver) +245
System.Web.Mvc.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, IEnumerable
1 controllerTypes, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) +23 System.Web.Mv c.Routing.AttributeRoutingMapper.MapAttributeRoutes (RouteCollection маршруты, IEnumerable`1 controllerTypes, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) +333
System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes (RouteCollection маршруты, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) +398
System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes (RouteCollection маршруты, IInlineConstraintResolver constraintResolver) +192
System.Web.Mvc.RouteCollectionAttributeRoutingExtensions.MapMvcAttributeRoutes (RouteCollection маршруты) +123
SocialManager.RouteConfig.RegisterRoutes (RouteCollection маршруты) в C: \ Users \ Насер Dostdar \ Documents \ Visual Studio 2013 \ Projects \ SocialManager \ SocialManager \ App_Start \ RouteConfig.cs: 16 SocialManager.MvcApplication.Application_Start() в C: \ Users \ Насер Dostdar \ Documents \ Visual Studio 2013 \ Projects \ SocialManager \ SocialManager \ Global.asax.cs: 18

[HttpException (0x80004005): Рядный ограничение распознаватель типа 'DefaultInlineConstraintResolver' не смог решить следующие инлайн ограничение:. 'Строка']
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext контекст, HttpApplication приложение) + 9942821
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr контекст приложение, HttpContext контекст, MethodInfo [] обработчики) +118
System.Web.HttpApplication.InitSpecial (HttpApplicationState состояние, MethodInfo [] обработчики, IntPtr контекст приложение, HttpContext контекст) +172
System.Web.HttpApplicationF actory.GetSpecialApplicationInstance (IntPtr контекст приложение, HttpContext контекст) +352
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr контекста приложения) +296

[HttpException (0x80004005): Рядное ограничение распознаватель типа «DefaultInlineConstraintResolver "не удалось решить следующие инлайн ограничение: 'строка']
System.Web.HttpRuntime.FirstRequestInit (HttpContext контекст) +992418 System.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext контекст) +101 System.Web. HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest сог, HttpContext контекст) +261

А вот как мой файл Route.Config выглядит следующим образом:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapMvcAttributeRoutes(); 

     routes.MapRoute(null, "Page{page}", 
     new 
     { 
      controller = "Blogs", 
      action = "Index", 
      category = 
       (string)null 
     }, 
     new { page = @"\d+" } 
     ); 
     routes.MapRoute(null, 
     "{category}", 
     new { controller = "Blogs", action = "Edit", page = 1 } 
     ); 
     routes.MapRoute(null, 
     "{category}/Page{page}", 
     new { controller = "Blogs", action = "List" }, 
     new { page = @"\d+" } 
     ); 
     routes.MapRoute(null, "{controller}/{action}"); 


     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 

PS: я не определен какой-либо MVC Attribute маршрут в моем проекте по состоянию на тем не менее, просто хотите проверить возможность включения функции маршрутизации атрибута MVC.

Web API Версия: 2,2

ответ

1

Где вы определили маршрут атрибута. Ничего другого не приведет к этой ошибке. Там, где вы это сделали, вы использовали string в качестве ограничения маршрута. Например:

[Route("{foo:string}")] 

Однако string не является допустимым маршрут ограничение, так как все в маршруте является строкой. Длинные и короткие, найдите атрибуты (ы) маршрута, которые вы определили, которые включают :string и удалите это.

+0

К сожалению, Крис, мой плохой !!! Я действительно не знаю, когда я определил маршрут с строковым ограничением, но да, был один, и все работает отлично! Спасибо! – BeanMRCode

Смежные вопросы