设置ASP.NET MVC站点服务器部署默认页为html页

今天部署了一个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 中的 节注册一个。 ",这说明路由设置已经起了作用,看来是.html没有找到处理程序,哈哈,离成功不远了。

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

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

2011-04-25更新: wangzhi

解决方法二:

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

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

routes.MapRoute(

"Default", // 路由名称

"//", // 带有参数的 URL

new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值

);

routes.MapRoute(

"Default", // 路由名称

"//", // 带有参数的 URL

new { action = "Index", id = UrlParameter.Optional } // 参数默认值

);

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

更多关注

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181222G09SDH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券