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();
}