我的项目中有以下控制器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 - Forbidden Web 服务器配置为不列出此目录的内容。
然而当我指定
www.example.com/press/index
.zip 文件正确返回。
现在我将以下内容添加到我的 routes.config 中:
routes.MapRoute("Press", "Press", new { controller = "Press", action = "Index" });
我仍然遇到上面提到的相同错误,有人可以阐明我可能缺少什么以使它正确执行吗?
HTTP 错误 403.14 - Forbidden Web 服务器配置为不列出此目录的内容。
该错误表明您的 Web 服务器上有一个名为的物理目录press
。发生的事情是 Web 服务器正在返回目录,而不是将请求传递给 MVC。IIS 中的默认设置是不列出目录的内容,因此会出现错误。
您需要删除press
目录(推荐),或者使用 重新配置 IIS 以运行 MVC 模块而不是目录runAllManagedModulesForAllRequests
,其中有一些警告。
这根本不是路由问题 - 这是网络服务器配置问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句