zoukankan      html  css  js  c++  java
  • ASP.NET MVC 5 伪静态之支持*.html路由

    参考了例子 到自己实践还是有不少坑要踩,这种文章,你说它好还是不好呢

    注意这里的版本是ASP.NET MVC 5

    首页的URL为  http://localhost:58321/index.html  或   http://localhost:58321/

    第一步是让 ASP.NET MVC 5 支持 html后缀的请求, 到ASP.NET MVC 5 项目根目录的的Web.config在增加配置

      <system.webServer>
        <handlers>
          <add name="HtmlFileHandler" path="*.html" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
        </handlers>
      </system.webServer>
    </configuration>

    应该有2种方式,只实践出一种,有2处改动,一.Global.asax.cs增加处理方法, 二.在RouteConfig.cs增加对index.html的路由
    在Global.asax.cs中增加

    protected void Application_BeginRequest()
    {
        HttpContext context = HttpContext.Current;
        string requestHtmlPath = context.Request.Path;
        //如果请求中带有html的后缀,需要进行处理
        if (requestHtmlPath.EndsWith("index.html"))
        {
            context.RewritePath("~");
        }
    }

    在RouteConfig.cs

    routes.MapRoute(
        name: "HomePage",
        url: "index.html",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        namespaces: new[] { "CBBC.XXX.Controllers" }
    )

    尝试了 ASP.NET MVC5 新特性:Attribute路由

    配了之后 http://localhost:58321/index.html 可以跳转到 HomeController的Index方法 但 http://localhost:58321/ 无法找到页面

    [HttpGet]
    [Route("index.html")]
    public ActionResult Index()
    {
        return View();
    }

    发现http://localhost:58321/ 无法找到页面,暂时未找到解决方案.

  • 相关阅读:
    Linux下安装漏洞扫描工具Nessus
    【译】使用OpenVAS 9进行漏洞扫描
    MD5小彩虹表
    获取某个版本软件存在的漏洞信息
    【译】使用chage来管理Linux密码过期时间的七个例子
    [转]Centos 安装Sublime text 3
    Nessus扫描策略
    Nginx使用笔记
    SSH 公钥登录
    MySQL加密
  • 原文地址:https://www.cnblogs.com/zhuji/p/11497986.html
Copyright © 2011-2022 走看看