我的MVC
项目中有以下控制器:
public class PressController : Controller
{
// GET: Press
public ActionResult Index()
{
return File("../press/FFF_PRESS.zip", ".zip");
}
}
我的路线
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
当我加载网站时,我的网址如下:
www.example.com
当我点击以下Action
<li class="footer__navEl"><a href='@Url.Action("Index", "Press")'>PRESS</a></li>
我希望网址为
www.example.com/press
并返回zip文件。
然而,当我点击此Action
时,我得到以下内容:
HTTP错误403.14 - 禁止访问 Web服务器配置为不列出此目录的内容。
然而,当我指定
时www.example.com/press/index
正确返回.zip文件。
现在我将以下内容添加到我的routes.config:
routes.MapRoute("Press", "Press", new { controller = "Press", action = "Index" });
我仍然得到上面提到的相同错误,是否有人能够了解我可能缺少的内容以使其正确执行?
答案 0 :(得分:3)
HTTP错误403.14 - 禁止将Web服务器配置为不列出此目录的内容。
该错误表示您的Web服务器上有一个名为press
的物理目录。发生的事情是Web服务器返回目录而不是将请求传递给MVC。 IIS中的默认设置不是列出目录的内容,因此是错误。
您需要删除press
目录(推荐),或者使用runAllManagedModulesForAllRequests
div
重新配置IIS以运行MVC模块而不是目录。{/ 3}。
这根本不是路由问题 - 这是一个Web服务器配置问题。