我在库中定义了一个控制器。我希望可以通过我的 3 个区域中的任何一个访问此控制器。目前,当通过例如“admin”区域(即 /admin/contact 的 url)访问时,找不到控制器(比如说“contact”)。但是,当通过“/contact”访问时,它确实有效。
区域是否需要任何路由配置才能允许公共控制器通过这些区域进行访问?
谢谢。
我在库中定义了一个控制器。我希望可以通过我的 3 个区域中的任何一个访问此控制器。目前,当通过例如“admin”区域(即 /admin/contact 的 url)访问时,找不到控制器(比如说“contact”)。但是,当通过“/contact”访问时,它确实有效。
区域是否需要任何路由配置才能允许公共控制器通过这些区域进行访问?
谢谢。
您可以将此控制器放在命名空间中:
namespace MvcApplication1.Controllers.MyAreas
{
public class ContactsController : Controller
{
...
}
}
然后在您的区域注册中指定此命名空间:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "SomeLibrary.Controllers.MyAreas" }
);
}
现在,当您导航到将执行/admin/contacts/index
的Index
操作时。ContactsController