MVC 5 Routing

Odpowiedz Nowy wątek
2014-12-27 03:50
Księżnik
0

Hej.
Ćwicząc ASP.NET MVC 5 napotkałem na dziwny problem i niestety nawet wujek google nie dał jednoznacznej odpowiedzi jak ten problem ominąć.
No więc tak.

Chciałem utworzyć podstronę "Admin" w ramach której użytkownik będzie miał dostęp do kilku różnych modułów.
Np.

Schemat w SE.

**Admin (folder)**
  -Index (widok)
 ** -UserView (folder)**
    -Users (widok)
    -UserCreate (widok)
    -Edit (widok)
    -[...itd...] (widok)

I ok, o ile dostanie się do folderu UserView i widoku Users nie stanowi problemu bo dodałem sobie:

routes.MapRoute(
                "AdminUsers",
                "{controller}/UserView/{action}",
                new
                {
                    controller = "Admin",
                    action = UrlParameter.Optional
                });

a samo przekierowanie wykonuję:

//Widok index
@Html.RouteLink("Managed Users", "AdminUsers", new { action = "Users" })

o tyle przekierowanie z Users do UserCreate już w ten sposób nie działa bo wywala błąd o tym że nie można odnaleźć takiej ścieżki.

//Widok Users
@Html.RouteLink("Create New", "AdminUser", new { action = "UserCreate" })

Sam błąd:

 The view 'UserCreate' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Admin/UserCreate.aspx
~/Views/Admin/UserCreate.ascx
~/Views/Shared/UserCreate.aspx
~/Views/Shared/UserCreate.ascx
~/Views/Admin/UserCreate.cshtml
~/Views/Admin/UserCreate.vbhtml
~/Views/Shared/UserCreate.cshtml
~/Views/Shared/UserCreate.vbhtml
Opis: Podczas wykonywania bieżącego żądania sieci Web wystąpił nieobsługiwany wyjątek. Aby uzyskać dodatkowe informacje o błędzie i miejscu jego występowania w kodzie, przejrzyj ślad stosu.

Szczegóły wyjątku: System.InvalidOperationException: The view 'UserCreate' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Admin/UserCreate.aspx
~/Views/Admin/UserCreate.ascx
~/Views/Shared/UserCreate.aspx
~/Views/Shared/UserCreate.ascx
~/Views/Admin/UserCreate.cshtml
~/Views/Admin/UserCreate.vbhtml
~/Views/Shared/UserCreate.cshtml
~/Views/Shared/UserCreate.vbhtml

Błąd źródła:

Podczas wykonywania bieżącego żądania sieci Web został wygenerowany nieobsługiwany wyjątek. Informacje dotyczące pochodzenia i lokalizacji wyjątku można zidentyfikować przy użyciu poniższego śladu stosu wyjątku.

Przy tworzeniu rozwiązania dla Users posiłkowałem się Stackiem +
http://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.routelink.aspx

Mam nadzieję że może ktoś z was napotkał na taki problem i udało mu się go rozwiązać.
Bo mam dziwne wrażenie że robię jakiś banalny błąd którego po prostu nie jestem w stanie wyłapać :/.

Może ew. mam błędne założenie co do tworzenia widoków w taki sposób jak tutaj próbuję, ale wydawało mi się że najlepiej tak to rozdzielić jeżeli w ramach Admin i jednego kontrolera chciałbym stworzyć parę modułów (Zamiast wrzucić wszytko do folderu "Admin" (prawie 20 widoków)).

Pozostało 580 znaków

2014-12-27 03:53
Księżnik
0

Zauważyłem literówkę w powyższym poście:

//Widok Users
@Html.RouteLink("Create New", "AdminUsers", new { action = "UserCreate" })

nic to niestety nie zmieniło.

Pozostało 580 znaków

2014-12-27 11:47
Księżnik
0

Ehh.. i oczywiście z rana błąd znalazłem..
żeby wykonać taką obsługę trzeba po stronie kontrolera przy zwracaniu widoku wskazać ścieżkę:

np.

return View("UserView/UserCreate",model);

Może komuś się to przyda.
Pozdrawiam

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0