В моем приложении у меня есть область «Участник». За пределами этой области я имею папку с именем «Generic», которая имеет контроллер «DataBindController». Этот контроллер будет использоваться во всех областях. Поэтому, чтобы сохранить его распространенным, я сохраняю его в отдельной папке за пределами областей.
Мой маршрут конфигурации выглядит следующим образом:Как вызвать контроллер за пределами области?
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
var ObjRoute = routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults:new {controller = "Login", action = "MemberLogin", id = UrlParameter.Optional},
namespaces: new string[] { "MyApp.Generic.*" }).
DataTokens = new RouteValueDictionary(new { area = "Member"});
//ObjRoute.DataTokens["UseNamespaceFallback"] = false;
}
}
Вот структура проекта.
Контроллер Test внутри родовой папки выглядит следующим образом:
namespace MyApp.Generic
{
public class DataBindController : Controller
{
public ActionResult Test()
{
return Content("Test");
}
}
}
Я получаю следующее сообщение об ошибке, когда я называю контроллер тестов с помощью "http://localhost/MyApp/Generic/DataBind/Test"
Ошибки в пути:/MyApp/Generic/DataBind/Test Контроллер для пути '/ MyApp/Generic/DataBind/Test' не найден или не реализует IController.
Просьба дать мне некоторое представление по этому вопросу.
'/ DataBind/Test'. Каталоги не имеют отношения к маршрутизации. –