2

你如何设置路由来处理http://mysite.com/Foo

其中 foo 可以是任何值。我希望它转到 /Home/Action/Id ,其中 foo 是 id。

这些是我尝试过的映射:

        routes.MapRoute("Catchall", "{*catchall}", 
           new { controller = "Home", action = "Index", id=""});

        routes.MapRoute("ByKey", "{id}", 
            new { controller = "Home", action = "Index" id=""});

他们都生成了404。

谢谢你的帮助。

4

3 回答 3

4

试试这个(注意你原来的帖子中缺少逗号):

routes.MapRoute("ByKey", "{id}",
     new { controller = "Home", action = "Index", id=""});

但是,我会对其进行更详细的解释,以防止以后发生冲突,即使这意味着更长的 URI:

routes.MapRoute("ByKey", "ByKey/{id}",
     new { controller = "Home", action = "Index", id=""});

并将其作为第一个 MapRoute 命令。顺序确实很重要,您添加的第一个路由是要测试的 URL 的第一个路由。

于 2009-07-11T23:44:35.880 回答
1

你的第二条路线是正确的。它应该工作。也许您上面还有其他路线?使用Phil Haack 的 ASP.NET 路由调试器调试您的路由

于 2009-07-11T18:57:13.997 回答
0

解决步骤 右键单击​​项目转到页面的 web 选项卡。我的开始 URL 被发现是空的 我复制了 Servers 部分的 Project url 中的内容粘贴在 Start Url

有效。

于 2019-12-18T23:09:54.160 回答