如何在ASP.NET MVC中处理空URL

时间:2009-07-11 17:11:18

标签: asp.net-mvc asp.net-mvc-routing

如何设置处理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。

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

试试这个(请注意原帖中缺少逗号):

routes.MapRoute("ByKey", "{id}",
     new { controller = "Home", action = "Index", id=""});
但是,我会在以后防止冲突时使其更具说明性,即使它意味着更长的URI:

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

并将其作为第一个MapRoute命令。订单在那里很重要,您添加的第一条路线是用于测试URL的第一条路线。

答案 1 :(得分:1)

你的第二条路线是正确的。它应该工作。也许你上面还有其他路线?使用Phil Haack's ASP.NET Routing Debugger

调试路线

答案 2 :(得分:0)

解决步骤 右键点击项目 转到页面的Web标签。 我的起始网址为空 我复制了“服务器的项目URL”部分中的内容 粘贴到“开始网址”

有效。