/ / .net Obszary i podfoldery MVC - asp.net-mvc

.net Obszary i podfoldery MVC - asp.net-mvc

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 № 1

Rozwią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");