MVC3路由配置的问题
控制器里面有admin文件夹,
所以有的控制器命名空间是mvc.Controllers
有的是mvc.Controllers.admin
在路由配置的地方配置了一下信息
routes.MapRoute(
"admin", // 我配置的规则
"admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, //
new string[] { "mvc.Controllers.admin" }
);
routes.MapRoute(
"Default", // 默认的规则
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "mvc.Controllers" }
);
后台有这样一个控制器,常见的订单管理功能,
namespace mvc.Controllers.admin
{
/// <summary>
/// 会员订单管理
/// </summary>
public class OrdersController : systemBaseController
{
public ActionResult OrdersList()
{//具体的一些代码省略
}
}
}
这个的访问地址是/admin/Orders/OrdersList,去掉我配置的规则后就不能访问,这个可以理解
但是为什么用/Orders/OrdersList也可以访问,屏蔽我配置的规则也可以访问,说明走的是默认的规则。但是默认的规则不是限制了命名空间了吗?命名空间必须是mvc.Controllers。就算我把规则里的命名空间乱写也可以访问。
为什么?如何解决呢?让/admin/Orders/OrdersList可以访问,/Orders/OrdersList不能访问。