我有一个路由相当奇怪的问题。在这种情况下,为什么不使用Html.ActionLink的默认路由工作?
说回路由不必担心配置了一年后,我使用的是默认的路由,而忽略资源路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
// Route name
"{controller}/{action}/{id}",
// URL with parameters
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
我有一个RulesController
与Index
和行动Lorem
和Index.aspx
,Lorem.aspx
在Views> Rules目录中。
我瞄准规则/指数maseter页面上的ActionLink的:
<li><div><%: Html.ActionLink("linkText", "Index", "Rules")%></div></li>
链接被呈现为http://localhost:12345/Rules/
和我得到一个404
当我键入Index
到URL中应用程序将其路由到该操作。
当我更改默认路由操作从"Index"
到"Lorem"
,动作链接被呈现为http://localhost:12345/Rules/Index
添加Index
,因为它是在默认路由和应用路线Index操作正确不再。
我已经使用Phil Haack's Routing Debugger,但输入url http://localhost:12345/Rules/
也导致404也使用它。
我想我已经涵盖了所有的菜鸟错误,相关的SO问题和基本的RTFM。
我假设“规则”不是路由中的任何种类的保留字。 除了更新路线并将它们打散之外,我还能看到什么?
你有没有定义任何IgnoreRoutes?你偶然在你的网站目录中有一个名为“规则”的文件夹? – 2011-01-06 17:34:02
我确实有默认的忽略路由(现在在问题中添加)和是在文件夹上;架构师尚未为Business Objects创建另一个项目,因此在那里有一个“规则”文件夹。我会重新组织和测试。如果是这样,请添加此评论作为答案。 – StuperUser 2011-01-06 17:43:14