MVC4.0 解决Controllers与Areas中控制器不能同名问题

在使用MVC4.0的时候,难免会遇到在根目录下的Controllers中添加的控制器名称可能会跟在Areas中的某个区域下的控制器名称一样。这个时候访问Areas下面的Controller/Action是没有问题的,但是访问根目录下的地址是就会提示:

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

根据错误提示,我们需要在默认路由中定义“namespaces”参数的值

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

 至此就可以访问根目录下的地址了!

转载于:https://www.cnblogs.com/amywechat/p/4887227.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值