Позвольте мне определить мою настройку здесь. У меня есть некоторые области, такие как 1. AreaA 2. AreaB 3. AreaC и 4. AreaGeneral. в AreaGeneral У меня есть один контроллер как home и GetData (paras), и он возвращает некоторые данные в частичной или полной форме страницы в angularjs. Если я использую эти два контроллера внутри AreaGeneral, тогда это нормально. но я хочу предоставить одни и те же контроллеры внутри других областей, как в A, B и AreaC, но там область и маршрут разные. и, что более важно, когда пользователь переходит в конкретную область, скажите, что AreaB обращается к контроллеру GetData (paras), тогда URL должен быть как .../AreaB/GetData вместо .../AreaGeneral/GetData, и маршрут должен работать в других областях: Что ж. Может ли кто-нибудь помочь мне, как это сделать, спасибо.Районы Маршрутизация в MVC 4 с angularjs
ответ
Givent, что вы уже AreaGeneral маршруты определены, как показано ниже:
public class AreaGeneralAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "AreaGeneral";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreaGeneral_default",
"AreaGeneral/{controller}/{action}/{id}",
new { controller = "Home", action = "GetData", id = UrlParameter.Optional }
);
}
}
Вы можете зарегистрировать этот маршрут в AreaB:
public class AreaBAreaRegistration : AreaRegistration
{
public override string AreaName
{
get { return "AreaB"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreaB_Getdata",
"AreaB/Home/Getdata",
new { controller = "Home", action = "GetData" },
new string[] { "areastest.Areas.AreaGeneral.Controllers" }).DataTokens["area"] = "AreaGeneral";
context.MapRoute(
"AreaB_default",
"AreaB/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
}
}
так что пользователь может перемещаться в .../AreaB/Home/GetData
и просмотреть страницу фактически обрабатывается внутри AreaGeneral.
Я использовал угловые услуги в различных областях MVC для этого я использовал следующий способ
если ваша структура проекта должна быть как следующий
>ProjectName
>Areas
>AreaGeneral >controllername >GetData(function)
>AreaA
>AreaB
>AreaC
если ваши услуги, как
app.service("yourService", ["$http",function ($http) {
this.GetData= function() {
var c = $http({
method: "post",
url:"../AreaGeneral/controllername/GetData",
data: "{}",
dataType: "json"
});
return c
} }])
если вы используются внутри AreaGeneral
, затем url "../AreaGeneral/controllername/GetData"
ОК для этого
, но при использовании другой области, как AreaA
"../AreaGeneral/controllername/GetData"
поисках внутри AreaA
, так что вы выигрыш получить результат
Solution для меня работа нравится называемая функция добавления дополнительных ../
согласно структуре каталогов корневой этот путь
"../../../AreaGeneral/controllername/GetData"
затем каждый раз при вызове getdata функция проверяет его из корневого каталога таким образом вы можете использовать функцию Getdata в любой области
Надейтесь, что это вам поможет.
Хорошо. но как насчет представления GetData, нужно ли мне копировать один и тот же вид в каждой области, где я хочу использовать ту же функциональность. Мое намерение состоит в том, что я хочу использовать тот же вид и тот же контроллер в разных областях без повторной записи дублирующего кода, возможно ли это. – Khan
Может кто-нибудь, пожалуйста, сообщите мне, как я могу использовать тот же контроллер с его представлениями внутри другой области без повторной записи представления и контроллера. – Khan
использовать ng-include для доступа из разных областей – Pravin
- 1. Laravel 4 - AngularJS - Маршрутизация
- 2. Asp.NET Mvc 4 Маршрутизация
- 3. AngularJS и MVC Маршрутизация
- 4. Маршрутизация MVC и AngularJS
- 5. Использование шаблонов UIRouter с MVC 4 Маршрутизация
- 6. Asp.net MVC 4 admin Маршрутизация
- 7. ASP.NET MVC 4 Пользовательская маршрутизация
- 8. Маршрутизация ASP.NET MVC и AngularJS
- 9. AngularJS маршрутизация и ASP.net MVC
- 10. Маршрутизация с помощью AngularJS и MVC
- 11. Маршрутизация Facebook AppRequests в ASP.Net MVC 4
- 12. Маршрутизация: в AngularJS или .NET MVC?
- 13. «Внутренняя» маршрутизация в AngularJS
- 14. Весна MVC и AngularJS Маршрутизация конфликта
- 15. Mvc 4 Маршрутизация на основе группы
- 16. Spring MVC AngularJS маршрутизация не работает
- 17. Маршрутизация с и без имени контроллера в ASP.NET MVC 4
- 18. Маршрутизация с использованием AngularJS
- 19. Маршрутизация Angularjs с данными
- 20. AngularJs Маршрутизация с параметрами
- 21. Маршрутизация в SPA с ASP.NET MVC 6 и AngularJS
- 22. ASP.NET 5 Маршрутизация навигации с помощью AngularJS
- 23. Маршрутизация в laravel 4
- 24. Динамическая маршрутизация в AngularJs
- 25. простая маршрутизация в angularjs
- 26. Miniblog маршрутизация с сайтом MVC
- 27. Маршрутизация в angularjs materialdesign
- 28. Поддоменная маршрутизация в AngularJS
- 29. AngularJS Маршрутизация в IIS
- 30. Rails 4: Маршрутизация с частичными
GetData - это маршрутизируемое действие? Вероятно, было бы разумнее, чтобы различные контроллеры вызывали одно и то же действие через ajax или наследовали действие из класса BaseController. – Jecoms
не могли бы вы быть более ясными по этому поводу или лучше объяснить мне, как я могу это сделать. или пример будет лучше – Khan
Я не уверен, что смогу точно определить, что вы пытаетесь сделать, без примеров вашей структуры кода/области контроллера. – Jecoms