当url仅指定目录时,Mvc2 Controller不触发默认操作

时间:2011-09-06 16:07:28

标签: c# asp.net-mvc asp.net-mvc-2

拥有默认路由的MVC 2应用程序:

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

除了一个控制器外,这对我们所拥有的一切都很有用。当我们浏览到url http:// myserver / ThisOneController 时,它不会触发Index操作并给出403.14禁止错误。如果我浏览 http:// myserver / ThisOneController / Index ,它运行正常!每个其他控制器都会显示预期的行为。

有问题的控制器定义了一个Index操作方法,并且在IIS中查看该文件夹似乎显示该文件夹与其他文件夹之间没有差异。它适用于我们的生产箱,但不适用于我们的测试盒......对于我的生活,我找不到这些盒子之间的任何差异。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Glimpse添加到项目中并检查正在使用的路由。然后,您可以查看问题是否在您的MVC应用程序或环境中。

答案 1 :(得分:-1)

这是预期的行为。

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

上面的路由意味着,你期望一个控制器/动作/ id,默认(当没有提供任何东西时)是root / Home / Index /。因此,任何其他具有root / diffController /等URL的控制器都不匹配,因为您提供的是控制器,但没有操作。