2017-04-26 57 views
0

开始asp.net mvc5应用程序我有谷歌这个问题,但还没有得到解决方案呢。我也尝试了教程视频和textual.I新到asp.net,我已经尝试了'基于约定的路由',但在尝试'属性路由'在asp.net mvc5我得到这个错误。这个错误发生在运行/构建应用程序。 我已经使用routes.MapMvcAttributeRoutes();,并遵循许多在线教师的步骤几乎每个人的解决方案是相同的,但它没有解决我的问题。'System.Reflection.TargetInvocationException'由于routes.MapMvcAttributeRoutes()

here is error picture

RouteConfig.cs

routes.MapMvcAttributeRoutes();//error occurs on this line 

控制器

[Route("movies/released/{year}/{month:Regex(//d{2}:Range(1,12)}")] 
public ActionResult ByReleasedDate(int year,int month) 
{ 
    return Content(year+"/"+month); 
    //return View(); 
} 

错误详细信息

System.Reflection.TargetInvocationException was unhandled by user code 
    HResult=-2146232828 
    Message=Exception has been thrown by the target of an invocation. 
    Source=mscorlib 
    StackTrace: 
     at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
     at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
     at System.Web.Mvc.Routing.DefaultInlineConstraintResolver.CreateConstraint(Type constraintType, String argumentString) 
     at System.Web.Mvc.Routing.DefaultInlineConstraintResolver.ResolveConstraint(String inlineConstraint) 
     at System.Web.Mvc.Routing.InlineRouteTemplateParser.GetInlineConstraint(Group constraintGroup, Boolean isOptional, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.Routing.InlineRouteTemplateParser.ParseRouteTemplate(String routeTemplate, IDictionary`2 defaults, IDictionary`2 constraints, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.Routing.DirectRouteFactoryContext.CreateBuilder(String template, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.Routing.DirectRouteFactoryContext.CreateBuilderInternal(String template) 
     at System.Web.Mvc.RouteAttribute.System.Web.Mvc.Routing.IDirectRouteFactory.CreateRoute(DirectRouteFactoryContext context) 
     at System.Web.Mvc.Routing.DefaultDirectRouteProvider.CreateRouteEntry(String areaPrefix, String controllerPrefix, IDirectRouteFactory factory, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction) 
     at System.Web.Mvc.Routing.DefaultDirectRouteProvider.CreateRouteEntries(String areaPrefix, String controllerPrefix, IReadOnlyCollection`1 factories, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction) 
     at System.Web.Mvc.Routing.DefaultDirectRouteProvider.GetActionDirectRoutes(ActionDescriptor actionDescriptor, IReadOnlyList`1 factories, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.Routing.DefaultDirectRouteProvider.GetDirectRoutes(ControllerDescriptor controllerDescriptor, IReadOnlyList`1 actionDescriptors, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, IEnumerable`1 controllerTypes, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) 
     at System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes(RouteCollection routes, IEnumerable`1 controllerTypes, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) 
     at System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes(RouteCollection routes, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) 
     at System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes(RouteCollection routes, IInlineConstraintResolver constraintResolver) 
     at System.Web.Mvc.RouteCollectionAttributeRoutingExtensions.MapMvcAttributeRoutes(RouteCollection routes) 
     at vidly2.RouteConfig.RegisterRoutes(RouteCollection routes) in C:\Users\Awais ahmed\documents\visual studio 2015\Projects\vidly2\vidly2\App_Start\RouteConfig.cs:line 15 
     at vidly2.MvcApplication.Application_Start() in C:\Users\Awais ahmed\documents\visual studio 2015\Projects\vidly2\vidly2\Global.asax.cs:line 17 
    InnerException: 
     HResult=-2147024809 
     Message=parsing "//d{2}:Range(1,12" - Not enough)'s. 
     Source=System 
     StackTrace: 
      at System.Text.RegularExpressions.RegexParser.ScanRegex() 
      at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op) 
      at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, TimeSpan matchTimeout, Boolean useCache) 
      at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options) 
      at System.Web.Mvc.Routing.Constraints.RegexRouteConstraint..ctor(String pattern) 
     InnerException: 
+0

请发布您的代码和任何完整的错误/堆栈跟踪,以便我们可以帮助您。 – dstepan

+0

我已经为它添加图片和代码。问题出现在routes.MapMvcAttributeRoute()上的应用程序的开始。 –

+0

什么是内部异常被抛出呢?点击异常框中的“查看详细信息”链接查看错误详细信息,并在此处发布(重点在错误消息,内部异常和堆栈跟踪部分)。 –

回答

0

我得到了answer..I编辑我的控制器代码

[Route("movies/released/{year}/{month:Regex(//d{2}:Range(1,12)}")] 
public ActionResult ByReleasedDate(int year,int month) 
{ 
    return Content(year+"/"+month); 
    //return View(); 
} 

这个

[Route("movies/released/{year}/{month}")] 
public ActionResult ByReleasedDate(int year,int month) 
{ 
    return Content(year+"/"+month); 
    //return View(); 
} 

通过这次我的属性路由起始working.But我不能肯定这是为什么如此可以部分解释这个事实?

+0

您在路由正则表达式中缺少一个圆括号,它应该是这样的:'{month:regex(\\ d {2}:range(1,12))}''。 –

+0

@TetsuyaYamamoto嗯,你是对的,现在它的问题已经奏效了。我真的很惊讶,为什么visual在'routes.MapMvcAttributeRoutes();'上给出错误,因为错误在定义路由。 –