对于我的大部分网站,我希望正常路由以MVC方式发生。但是,当应用程序首次启动时,我不希望路由转到/Home/Index.cshtml。我希望它简单地转到/Index.html
我目前的RegisterRoutes看起来像这样(并没有实现我的目标)
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("index.html");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
答案 0 :(得分:7)
public ActionResult Index() {
string FilePath = Server.MapPath("~/index.html");
// You can add other conditions also here
if (System.IO.File.Exists(FilePath)) {
return File(FilePath, "text/html");
}
return View();
}
希望这有帮助!
答案 1 :(得分:1)
我不知道你是否考虑到这一点,你应该在root web.config中设置:
<appSettings>
<add key="webpages:Enabled" value="true" />
</appSettings>
如果你在根目录中有一个index.cshtml,那么你在RouteConfig.cs中不需要任何其他东西(这个文件只能包含html代码)。
但是如果你只想提供(不处理)文件,我的意思是,index.html例如你还需要在项目中将这个文件设置为起始页面,这就是所有,最简单的答案。
答案 2 :(得分:0)
定义所有控制器的路由并删除默认根目录:
name: "Default",
url: "{controller}/{action}/{id}",
新默认值为index.html。