2017-04-26 56 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();'上給出錯誤,因爲錯誤在定義路由。 –