设置ASP.NET MVC站点默认页为html页

本文介绍了如何在ASP.NET MVC应用中将默认页设置为HTML文件,包括尝试的几种方法,如Application_BeginRequest事件处理、添加路由、修改Global.asax文件、配置Web.config以及IIS中的默认文档设置。在解决问题的过程中,遇到的错误和解决方案也进行了详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更新:上周的解决方法在Area=""使用默认路由映射时会出问题,见解决方法二

 

今天部署了一个Asp.Net MVC站点,希望它的默认页是一个html页,在vs2010中给站点根目录增加了default.html,然后调用没有什么问题,但部署到IIS7上,就是不起作用,试了routes.IgnoreRoute,但还是访问原来的路由设置的controller。

 

上网搜索了一下,找到下面两种解决的方法:(但我感觉都不好,最后自己找了一个解决的方法,感觉还行)

方法1:

在Global.asax文件中增加

protected void Application_BeginRequest(object sender, EventArgs e)
{
    if (Context.Request.FilePath == "/") Context.RewritePath("Default.html");
}

方法2:

新建一个路由DefaultController,并把它设置为默认路由,在Action中增加

Redirect(Url.Content("~/Default.html"));

 

我的方法:

      使用Web窗体应用程序路由MapPageRoute,开始时还碰到点问题。我增加routes.MapPageRoute("Default_Page", "/", "~/Default.html"),iis报错——路由 URL 不能以“/”或“~”字符开头,并且不能包含“?”字符 。要修改为routes.MapPageRoute("Default_Page", "", "~/default.html");(注意如果你的默认页是aspx页面,将default.html修改为default.aspx,到这里就应该可以工作了)。这时iis报错变为——"没有为扩展名“.html”注册的生成提供程序。可以在 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。 ",这说明路由设置已经起了作用,看来是.html没有找到处理程序,哈哈,离成功不远了。

    在Web.config文件中的<compilation>节点中增加:

 

     <buildProviders>
        <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
      </buildProviders>

 

设置为其他文件可以依此类推。wangzhi

 

2011-04-25更新:  wangzhi

解决方法二:

1)站点根目录增加了default.html;

2)修改Global.asax默认的路由注册,去掉默认controller:

routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Home",  action = "Index", id = UrlParameter.Optional } // 参数默认值
            );

 

routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { action = "Index", id = UrlParameter.Optional } // 参数默认值
            );

 

 

将iis中的默认文档配置为default.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值