zoukankan      html  css  js  c++  java
  • MVC中添加Area后路由默认导航优先级的处理

    先决条件

    1.项目中添加一个Admin的Area

    2.Admin下的Controller添加Home

    3.默认的Controller中也有Home

    出现的问题

    1.输入Url根目录无法导航到正确的Home

    2.输入Admin的Url也无法导航

    解决方案

    修改App_Start目录下的RouteConfig文件

    routes.MapRoute(
                     "Default",
                     "{controller}/{action}/{id}",
                     new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                    ,
                      new[] { "WebMonitor.Web.Controllers" } //指定命名空间
                );
    

      

      其中WebMonitor.Web是项目名,很多人的blog中都不提这一点,不知道是为什么。

    这时AdminAreaRegistration的内容没有动,

    此时访问根目录可以正确导航,但是方位admin时需要在Url后添加 /Home,类似:XXX/Admin/Home才可正确导航。

    如何在我们输入XXX/Admin可以正确导航到XXX/Admin/Home?

    这时就需要修改AdminAreaRegistration文件

    public override void RegisterArea(AreaRegistrationContext context) 
            {
                context.MapRoute(
                    "Admin_default",
                    "Admin/{controller}/{action}/{id}",
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }               
                );
            }
    

      默认添加的文件中没有 controller = "Home",需要添加后,定义了默认值才能实现如上所述功能。

  • 相关阅读:
    //删除字符串值的某个值
    disabled和readonly 的用法区别
    Js判断为空或不是对象或是否相等
    1.类型分析:
    多行内容放到一行中(内容的合并)
    sql split
    sql修改列名
    对oracle数字类型的研究
    kettle--组件(3)--行转列
    kettle--组件(2)--计算器
  • 原文地址:https://www.cnblogs.com/vevi/p/5461027.html
Copyright © 2011-2022 走看看