zoukankan      html  css  js  c++  java
  • 处理Controller命名冲突的问题 Kevin

    “找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。”

     

    出现该问题的愿原因是在默认的Golbal.asax.cs文件中已经注册了默认路由

    public static void RegisterRoutes(RouteCollection routes)
    {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
    //new string[] { "Working_with_Areas.Controllers"}
    );

    }

    而在AREAS中有注册了一个同名的Controller

    public override void RegisterArea(AreaRegistrationContext context)
    {
    context.MapRoute(
    "Admin_default",
    "Admin/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional },
    //new string[] { "Working_with_Areas.Areas.Admin.Controllers" }
    );
    }

     

    解决方法就是在每个注册Router的时候加上命名空间即可。

  • 相关阅读:
    NOIP2015 D1 解题报告
    2017.10.2 国庆清北 D2T2 树上抢男主
    2017.10.6 国庆清北 D6T3 字符串
    2017.10.1 国庆清北 D1T2 两个逗比捉迷藏
    电压驱动和电流驱动
    电子管
    点亮板载LED
    ESP8266——一般控制方法
    ESP8266——CPU频率更改和深度睡眠模式
    ESP8266——ADC
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2592144.html
Copyright © 2011-2022 走看看