【发布时间】:2010-01-17 14:45:00
【问题描述】:
我尝试使用这样的 URL /Forum/Index/2
对于 url,我的 global.asax
如果我使用 Route Debugger 测试上面的 URL,它对应于上面的路由(以及其他一些,但这是列表中的第一个)
但是如果我使用 ActionLink 创建一个 url(像这样:<%= Html.ActionLink(item.Title, "Index", new { controller = "Forum", page = page })%>),这个方法会返回这个 URL /Forum/Index?page=2
有没有办法使用 ActionLink 方法获得一个查询字符串中没有任何内容的 URL?
这是我所有的路线,比赛路线被命名为DefaultWithPager:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("google884930bf56853ce4.html");
routes.MapRoute(
"sitemapXML",
"Sitemap.xml", // URL with parameters
new { controller = "Sitemap", action = "Sitemap" } // Parameter defaults
);
routes.MapRoute(
"ImageStat", // Route name
"{controller}/{action}/{MailID}/{UserID}.gif", // URL with parameters
new { controller = "", action = "", MailID = "", UserID = "" }, // Parameter defaults
new {
MailID = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$",
UserID = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$"
}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"DefaultWithPager", // Route name
"{controller}/{action}/{page}", // URL with parameters
new { controller = "Home", action = "", page = "" }, // Parameter defaults
new { page = @"^\d+$" }
);
routes.MapRoute(
"DefaultWithID", // Route name
"{controller}/{action}/{ID}", // URL with parameters
new { controller = "Home", action = "", ID = "" }, // Parameter defaults
new { ID = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$" }
);
routes.MapRoute(
"DetailWithID", // Route name
"{controller}/{action}/{ID}/{Title}", // URL with parameters
new { controller = "Home", action = "", ID = "", Title = "" }, // Parameter defaults
new { ID = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$" }
);
//Handler route
routes.MapRoute(
"ImageResizer", // Route name
"{controller}/{action}/{Title}/{ID}.jpg", // URL with parameters
new { controller = "", action = "", Title = "", ID = "" } // Parameter defaults
);
//Section Pages Routes
routes.MapRoute(
"SectionIndex", // Route name
"{sectionName}/{controller}/{action}", // URL with parameters
new { controller = "", action = "", sectionName = "" } // Parameter defaults
);
routes.MapRoute(
"SectionDetails", // Route name
"{sectionName}/{controller}/{action}/{ID}", // URL with parameters
new { controller = "", action = "", sectionName = "", ID = "" } // Parameter default
);
routes.MapRoute(
"SectionDetailsWithDate", // Route name
"{sectionName}/{controller}/{action}/{month}/{year}", // URL with parameters
new { controller = "Home", action = "", page = "", month = "", year = "" }, // Parameter defaults
new { month = @"^\d+$", year = @"^\d+$" }
);
routes.MapRoute(
"SectionDetailsWithTitle", // Route name
"{sectionName}/{controller}/{action}/{ID}/{Title}", // URL with parameters
new { controller = "", action = "", sectionName = "", ID = "", Title = "" } // Parameter defaults
);
routes.MapRoute(
"SectionDetailsPagingWithTitle", // Route name
"{sectionName}/{controller}/{action}/{page}/{ID}/{Title}", // URL with parameters
new { controller = "", action = "", sectionName = "", page = "", ID = "", Title = "" } // Parameter defaults
);
routes.MapRoute(
"SectionDetailsPaging", // Route name
"{sectionName}/{controller}/{action}/{page}/{ID}", // URL with parameters
new { controller = "", action = "", sectionName = "", page = "", ID = "" } // Parameter defaults
);
高蒂尔
【问题讨论】:
-
请发布所有路线注册。您在此处提供的内容应该可以正常工作。
标签: asp.net asp.net-mvc routes query-string actionlink