下面的代码:这些路线为什么匹配?
<li>@Html.ActionLink(metaTapp.Nav_About, "Mayla", "About")</li>
<li>@Html.ActionLink(metaTapp.Nav_Support, "Support", "About")</li>
<li>@Html.ActionLink(metaTapp.Nav_Exchange, "Index", "Exchange")</li>
<li>@Html.ActionLink("Post Rfq", "Create", "Rfq")</li>
是生产以下链接:
<li><a href="/Upload/Image?action=Mayla&controller=About">About</a></li>
<li><a href="/Upload/Image?action=Support&controller=About">Support</a></li>
<li><a href="/Upload/Image?action=Index&controller=Exchange">Exchange</a></li>
<li><a href="/Upload/Image?action=Create&controller=Rfq">Post Rfq</a></li>
我的全球应用开始看起来是这样的:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
UploadRouteConfig.RegisterRoutes(RouteTable.Routes);
LocalizationConfig.RegisterRoutes(RouteTable.Routes);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());
}
}
UploadRouteConfig.RegisterRoutes:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("Upload", "Upload/Image", null).RouteHandler = new UploadMvcRouteHandler();
}
个
LocalizationConfig.RegisterRoutes
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Account", // Route name
"Account/{action}", // URL with parameters
new { controller = "Account", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"RfqCategory",
string.Format("{{{0}}}/Rfq/CategoryFilter/{{category}}", Constants.ROUTE_PARAMNAME_LANG),
new { controller = "Rfq", action = "CategoryFilter", category = Guid.Empty.ToString() }
);
routes.MapRoute(
Constants.ROUTE_NAME,
string.Format("{{{0}}}/{{controller}}/{{action}}/{{rfqid}}", Constants.ROUTE_PARAMNAME_LANG),
new { controller = "About", action = "Home", rfqid = "00000000-0000-0000-0000-000000000000" }
);
}
RouteConfig.RegisterRoutes:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("TappDefault", "{controller}/{action}/{id}", new { controller = "About", action = "Home", id = UrlParameter.Optional }
);
我无法理解的上传是如何被匹配到的一切。如果路由没有以Upload/Image开头,它应该通过localconfig路由?
尝试定义你的'LocalizationRoutes'首先在'UploadROute'之前 – WannaCSharp
这不会/不会工作,因为上传会被解释为语言环境。我也不想让它工作,但要理解它为什么不起作用。我现在的理解是,我做得很好,所以显然不是,但我需要知道为什么我今后可以“做得更好”。 – rism