【发布时间】:2013-06-25 12:34:30
【问题描述】:
这似乎是一个已经被问过/回答过很多次的问题。不是。
开发环境: VS 2012 和 MVC 4。我使用内置的 IIS Express 来运行应用程序。
直到昨天才出现此错误。它突然开始发生,我被卡住了。奇怪的是它只发生在一个场景中。
当我尝试访问 http://localhost:49962/managescholars/ 时,它显示错误
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
但是使用http://localhost:49962/managescholars/Index 可以正常工作。同一控制器的其他操作方法也可以正常工作。如http://localhost:49962/managescholars/create。所有其他控制器也可以正常工作。
我已尝试将以下内容添加到 web.config。
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
<handlers/>
</system.webServer>
我也试过以管理员身份运行以下命令
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
但它们都不起作用。
编辑:
我已经修改了我的路线。它们如下所示。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "ManageScholarLectures",
url: "Manage/Lectures/{userFriendlyName}",
defaults: new { controller = MVC.ManageLectures.Name ,
action = MVC.ManageLectures.ActionNames.Index,
userFriendlyName = UrlParameter.Optional }
);
routes.MapRoute(
name: "ManageScholarEdit",
url: "Manage/Scholars/{userFriendlyName}",
defaults: new { controller = MVC.ManageScholars.Name,
action = MVC.ManageScholars.ActionNames.Edit }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = MVC.Home.Name,
action = MVC.Home.ActionNames.Index,
id = UrlParameter.Optional }
);
}
我正在使用T4MVC 模板。
即使我将默认路由留在底部并删除前两条路由,它仍然不起作用。我做错了什么?
非常感谢您的帮助。
【问题讨论】:
-
您最近更改了路线吗?那将是我首先要看的地方。
-
路由应该默认只是一个控制器 URL 到它的索引页面,除非你改变它
-
是的。你说的对。我最近修改了路线。我已经编辑了我的问题并包含了 RegisterRoutes 方法
-
我遇到了这个问题,因为我的 MVC 项目的根目录中有一个与区域同名的文件夹。接受的答案也解决了这个问题。
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing