Używam Obszary w moim projekcie, ale chciałbym uporządkować moje widoki w tych obszarach na podfoldery.
Na przykład mam obszar o nazwie Członkowie, który zawiera kontroler o nazwie Ustawienia i inny kontroler o nazwie CzłonekCategory. MemberCategory jest podfolderem ustawień.
Chciałbym, gdy mam dostęp do widoku kategorii członków, aby mój adres URL mógł zostać przetłumaczony jako Członkowie / Ustawienia / Grupa użytkownika
Obecnie przechodzi do Members / MemberCategory
Czy możliwe jest zagnieżdżenie widoków w podfolderach i zmiana kontrolera na punkt
return View("Members/Settings/MemberCategory");
Czy trzeba to zrobić z routingiem?
Dowolne przykłady będą mile widziane.
Odpowiedzi:
4 dla odpowiedzi № 1Rozwiązałem ten problem w Routes i nie zagnieżdżałem widoków w podfolderach.
W moim pliku rejestracyjnym obszaru dodano następujące parametry powyżej domyślnej trasy:
context.MapRoute(
"MemberCategory",
"Members/Settings/MemberCategory",
new { controller = "MemberCategory", action = "Index" }
);
context.MapRoute(
"MemberCategoryAction",
"Members/Settings/MemberCategory/{action}/{id}",
new { controller = "MemberCategory", action = "Index", id = UrlParameter.Optional }
);
Nie jestem pewien, czy to jest najbardziej elegancki sposób, ale działa w moim przypadku.
1 dla odpowiedzi nr 2
Możesz także zrobić coś takiego:
return this.View("../MailTemplates/ResetPassword");
Aby przejść do widoku, którego chcesz użyć. Edytor kodu nie będzie w stanie rozwiązać tego problemu, ale działa.
Myślę, że to jest czystsze niż:
return this.View("~/Areas/Cms/MailTemplates/ResetPassword");