如何在asp.net mvc中更改默认路由点静态html文件

时间:2009-04-18 23:12:47

标签: asp.net-mvc

我们如何将默认文件指向 index.html ,而不是默认操作主页/索引

4 个答案:

答案 0 :(得分:1)

在IIS中,将默认文档配置为列表顶部的index.html?

或者您可以将IgnoreRoute添加到global.asax

public static void RegisterRoutes(RouteCollection routes)
{
   routes.RouteExistingFiles = true;
   routes.IgnoreRoute("{file}.html");
   ...

答案 1 :(得分:1)

我发现在IIS 6下,当您使用通配符catchall将大多数请求路由到MVC时,至少会影响默认文档拾取。

我的解决方案(仅针对我的根路径)如下: (在global.asax中)

if(Request.Path ==“”|| Request.Path ==“/”)             {                 Response.Redirect(Request.Path +“index.htm”,true);                 返回;             }

这会获取请求并将其重定向到正确的位置。使用Context.RewritePath(Request.Path +“index.htm”)重写路径;而不是重定向也似乎工作。 进一步修改可能是查看路径的最后一个字符是否为“/”,如果是,则检查相应的文件(thatpath / index.htm)是否存在,如果确实存在则重定向...这将有效地允许MVS保持在提供逻辑的同时工作,因此任何存在的具有类似默认文档的文件夹都可以提供逻辑。

答案 2 :(得分:0)

您可以通过在项目的Global.asax.cs文件中添加或更改路径来更改默认控制器操作。

在模板中,包括以下内容:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = null });

如果您希望默认指向不同的控制器操作,只需更改上面第四行代码中匿名类型的值。

答案 3 :(得分:0)

我添加了

        routes.IgnoreRoute("");

到我的路线配置。这会忽略根文件夹,如果你的root中有一个index.html文件,它就会被拿起来。