0

我在我的 ASP.NET MVC 4 应用程序中使用路由,我遇到了一个非常奇怪的问题。我正在尝试建立到名为 Ekstranett 的区域的路由,但如果我使用 Ekstranett 作为第一个 URL 参数,我会收到内部服务器错误。除了 Ekstranett,我可以使用任何词,我觉得这很奇怪。这是我的设置:

context.MapRoute(
            "Exception",
            "Ekstranett/Exception/{action}/{*handle}",
            new { controller = "Exception", action = "General", handle = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

        context.MapRoute(
            "Support",
            "Ekstranett/Support/{action}/{*handle}",
            new { controller = "Support", action = "Tickets", handle = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

        context.MapRoute(
            "Ekstranett_default",
            "Ekstranett/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

如果我将 Ekstranett 更改为 Ektranett、Testing、Foobar 或其他任何东西,它会完美运行,但如果我使用 Ekstranett,它不会。有没有人知道我为什么会遇到这种行为?

4

2 回答 2

0

只是猜测,但可能是因为 Ekstranett 是该地区的名称?可能导致某种路由冲突。出于兴趣,如果您在路线中使用所有小写字母,那行得通吗?(例如"ekstranett/Support/{action}/{*handle}"

于 2012-11-30T11:31:30.163 回答
0

问题已经解决了!很久以前,我创建了一个名为 ekstranett 的虚拟目录,我删除了它,现在一切正常!

于 2012-11-30T12:20:09.147 回答