【发布时间】:2014-06-21 11:10:56
【问题描述】:
我有两个类库项目和一个这样的 mvc Web UI 项目。
- Separated.Blog.Controller(包括 HomeController、索引视图)
- Separated.Admin.Controller(包括 HomeController、索引视图)
- Separated.UI(包括博客和管理员引用)
我这样配置 UI Route 配置。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Blog",
"{controller}/{action}/{id}",
new {controller="Home", action = "Index",id = UrlParameter.Optional },
new[] { "Separated.Blog.Controller" });
routes.MapRoute("Admin",
"{controller}/{action}/{id}",
new{controller="Home",action="Index",id = UrlParameter.Optional },
new[] { "Separated.Admin.Controller" });
}
namespace Separated.Admin.Controller.Controllers
{
public class HomeController:System.Web.Mvc.Controller
{
public ActionResult Index()
{
return Content("This is Admin index page");
}
}
}
namespace Separated.Blog.Controller.Controllers
{
public class HomeController: System.Web.Mvc.Controller
{
public ActionResult Index()
{
return Content("This is Blog index page...");
}
}
}
当我运行项目时,出现如下错误:
找到了与名为“Home”的控制器匹配的多种类型。这 如果服务此请求的路由可能会发生 ('{controller}/{action}/{id}') 未指定要搜索的命名空间 对于与请求匹配的控制器。如果是这种情况, 通过调用“MapRoute”方法的重载来注册此路由 这需要一个“命名空间”参数。
“主页”请求找到了以下匹配的控制器: 分离的.Admin.Controller.Controllers.HomeController 分离的.Blog.Controller.Controllers.HomeController
我想使用 localhost/Home/Index 之类的 Blog Home 控制器启动。并调用管理控制器 localhost/Admin/Home/Index
【问题讨论】:
-
认为你应该搜索
Areas -
我在 UI 项目中添加了两个区域,它们有控制器和视图文件夹。如何将我的分离控制器显示到这些区域?
标签: c# asp.net asp.net-mvc asp.net-mvc-4