• MVC4.0 如何设置默认静态首页index.shtml


    1.不启用二级域名情况下(www.xxx.com)下设置默认静态首页index.shtml

      通过配置IIS的默认文档,设置默认首页地址

      

      然后在MVC的路由中写入忽略默认路由代码

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
        routes.IgnoreRoute("");
    
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new string[] { "XXX.WebUI.Controllers" }//解决Controllers与Areas中控制器不能同名问题
        );
    

     2.启用二级域名情况下(xxx.xxx.com)下设置默认静态首页index.shtml

      实现接口IRouteConstraint接口

        public class DomainXXXXConstraint : IRouteConstraint
        {
            public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
            {
                return httpContext.Request.Url.Host.ToLowerInvariant() == "XXXX";
            }
        }
    

      然后在MVC的路由中写入忽略默认路由代码

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.IgnoreRoute("", new { DomainConstraint = new DomainXXXXConstraint() })
    
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "XXX.WebUI.Controllers" }//解决Controllers与Areas中控制器不能同名问题
            );
        }
    
  • 相关阅读:
    [转][c#]C# 二维数组到底该如何定义?
    [c++]筛法求素数
    USB驱动问题
    使用Ajax.dll前台调用后台方法及错误示例
    asp.net中前台javascript与后台C#交互
    visual stdio2010 生成的缓存文件
    jQuery.ajax概述[转]
    一种正向最小匹配的中文分词算法
    2010 .NET面试题整理之基础篇[转]
    Winform设计不规则窗体
  • 原文地址:https://www.cnblogs.com/amywechat/p/5138684.html
Copyright © 2020-2023  润新知