我有我的MVC
項目中的下列控制器:使路由工作而不指定URL中的操作名稱。 - 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" });
我仍然得到上述同樣的錯誤,有人可以提供一些線索成什麼樣我可能會丟失得到這個正確執行?
你有沒有按照正確的順序設置MapRoute? '[domain]/Press'將要求顯示'Press'目錄的內容,默認情況下在IIS中禁用。路線順序或格式應該調整,以便'Press'控制器在默認值之前先評估。 –