我已经用 durandal 介绍了 mvc 区域概念
我的层次结构是
Area.Web
Areas
Blog
Controller
SocialController
Social
View
Task
Controller
View
Scripts
App
Blog
ViewModels
我有根据我的网址到该区域的路线。例如,本地主机/博客
我的路线将是:
routes.MapRoute(
name: "blog",
url: "blog/{action}/{id}",
defaults: new { controller = "blog", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "Area.Web.Blog.Controllers" }
);
routes.MapRoute(
name: "Task",
url: "Task/{action}/{id}",
defaults: new { controller = "task", action = "Index", id = UrlParameter.Optional},
namespaces: new string[] { "Area.Web.Task.Controllers" }
);
当我尝试导航到 localhost/blog 时,它会调用正确的控制器并正确呈现。当 durandal 路由发生时博客被排除。所以我的路由 url 无法获取控制器。
app.setRoot('viewmodels/social/home', 'entrance');
以下路由抛出 404 异常,因为它忽略了路由 url (localhost/social/home) 中的博客
请告诉我,如何解决这个问题。是否可以在所有路线和 app.set 中包含区域名称。