Obecnie pracuję nad aplikacją asp.net mvc z trzema typami użytkowników. 1) Administrator 2) Szkoła 3) Rodzic
Chcę ozdobić adres URL 3 częściami,
like if it is admin then -> Admin/{Controller}/{Action}/{id}
if Shcool -> School/{Controller}/{Action}/{id}
if Parent - > Parent/{Controller}/{Action}/{id}
Próbowałem zmodyfikować plik routeconfig.cs tak jak
routes.MapRoute(
name: "Default",
url: "School/{controller}/{action}/{id}",
defaults: new { controller = "EstablishmentLogin", action = "Login", id = UrlParameter.Optional });
Działa, ale problem polega na tym, że kiedykolwiek użyłem wywołań ajax, muszę zmodyfikować adres URL z [{Controller} / {Action} / {id}] do [School / {controller} / {Action} / {id}].
Sprawdzanie wszystkich wywołań ajax i modyfikowanie adresów URL będzie czasochłonne. Proszę zasugerować mi, czy istnieje jakaś alternatywa dla tego problemu.
Also I want to Organize the folders Physically as
1)Admin -> Controllers
-> View
-> models
2)School - > Controllers
- > Views
-> Models`enter code here
3)Parent - > Controllers
- > Views
- > Models
How can i acheive this ?
Odpowiedzi:
0 dla odpowiedzi № 1Ustaw je jako obszary. Kliknij projekt prawym przyciskiem myszy -> Dodaj -> Obszar. Stworzy to strukturę folderów dokładnie taką, jaką przedstawiłeś w swoim pytaniu. Obszar będzie miał także własną wersję RouteConfig.cs
o nazwie [AreaName]AreaRegistration.cs
. To jest jak mini witryna MVC w głównym projekcie. Jeśli chcesz utworzyć łącze między obszarami lub między główną witryną a obszarem, to ją zbudujesz jak ...Url.Action("Action", "Controller", new { area = "AreaName" });