Asp.net mvc ASP.NET路由未达到T4MVC的默认值

Asp.net mvc ASP.NET路由未达到T4MVC的默认值,asp.net-mvc,asp.net-mvc-4,routes,t4mvc,Asp.net Mvc,Asp.net Mvc 4,Routes,T4mvc,这以前没有发生过,但突然间我不再按我的默认路线走了。我的主页转到http://localhost:2222/assets/images/30?Controller=home&Action=index。为什么会发生这种情况 我注意到,当我在主控制器上执行操作时,它工作正常,但如果我转到另一个控制器,则会出现此问题 @foreach(var t in MVC.Home.Index().GetRouteValueDictionary()) { <span>@t.Ke

这以前没有发生过,但突然间我不再按我的默认路线走了。我的主页转到
http://localhost:2222/assets/images/30?Controller=home&Action=index
。为什么会发生这种情况

我注意到,当我在主控制器上执行操作时,它工作正常,但如果我转到另一个控制器,则会出现此问题

@foreach(var t in MVC.Home.Index().GetRouteValueDictionary())
    {
        <span>@t.Key - @t.Value</span>
    }

Area - Controller - home Action - index
Global.asax

 routes.Add(
                "Images",
                new Route(
                    "assets/images/{Id}",
                        new RouteValueDictionary(),
                        new RouteValueDictionary { { "Id", "\\d+" } },
                        new ImageRouteHandler(new ImageHandler())
                    )
                );


            routes.MapRouteLowercase(
               "Default",


                  "{controller}/{action}",


                   new { controller = "Home", action = "Index", area="" }
                   );
HomeController.cs

public partial class HomeController : SiteController


     {
          public virtual ActionResult Index()
                {
                    var model = new HomeViewModel();


                    return View(model);
                }
T4MVC.cs

   public class ActionNamesClass {
            public readonly string Index = ("Index").ToLowerInvariant();
}

我继续并反转了默认路径,资产路径和所有东西都正常工作,很奇怪。

链接是如何生成的。看起来您提供的路由值Id=30将与首选的第一个路由相匹配,而与控制器和/或操作名称无关。你可能想考虑添加一个控制器约束,因为我用T4MVC生成了它。只是出于兴趣,看看瞥见的NuGuT包,它有一个路由调试器Tabe,它是由MVC。Hoo.DeXx()调用生成的路由字典,从T4MVC.cs文件的Index方法生成代码的主控制器上的Index方法的签名是什么
   public class ActionNamesClass {
            public readonly string Index = ("Index").ToLowerInvariant();
}