Nie działa nowa strona ASP .NET

0

Zaczynam tworzyć aplikację internetową w ASP .NET MVC 5 wszystko szło sprawnie dokąd nie dodałem nowej strony.
Wyświetlił mi się komunikat:

Błąd serwera w aplikacji '/'.
Nie można znaleźć zasobu.
Opis: HTTP 404. Strona, której szukasz (lub jeden z jej elementów zależnych), mogła zostać usunięta, zmieniono jej nazwę lub jest tymczasowo niedostępna. Przejrzyj poniższy adres URL i upewnij się, że jest poprawnie wpisany.

Żądany adres URL: /Views/Maps/Map.cshtml

Informacje o wersji: Wersja Microsoft .NET Framework:4.0.30319; Wersja ASP.NET:4.6.118.0

Wszystkie inne strony mi działają normalnie (te wygenerowane) natomiast nawet jak podam ścieżkę według routingu (RouteConfig.cs) czyli localhost/Maps/Map
Folder Maps znajduje się w folderze View.

No i dodałem podstawowy Controller:

    public class MapController : Controller
    {
        // GET: Map
        public ActionResult Map()
        {

            ViewBag.Message = "Mapa.";
            return View();
        }
    }

Szukałem rozwiązania w necie głównie na zagranicznych stronach ale nic mi nie pomogło może chociaż tutaj ktoś mnie nakieruje
Z góry dzięki

0

Masz widok dodany?

0

Jako widok jest strona Map.cshtml w folderze Views/Maps

2

W MVC podaje się adresy zasobów, czyli akcji kontrolera, nie plików.
Spróbuj z /Views/Map/Map

0

Niestety jest ten sam efekt czyli dalej nie wyświetla mi strony.

1

localhost/Map/Map tylko z return view jak kolega wyzej

0

To jeszcze return view ma gdzieś być? Bo ja mam to w akcji kontrolera (tak jak w pierwszym poście napisałem)
Niestety strona w ogóle się nie odpala.

1

Controler masz Map
odwołujesz się do Maps

0

No tak literówka mi się wkradła bo pomyliłem z folderem
teraz wpisałem localhost/Map/Map za to inne błędy mi się wyświetliły tego typu:

Błąd serwera w aplikacji '/'.
The view 'Map' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Map/Map.aspx
~/Views/Map/Map.ascx
~/Views/Shared/Map.aspx
~/Views/Shared/Map.ascx
~/Views/Map/Map.cshtml
~/Views/Map/Map.vbhtml
~/Views/Shared/Map.cshtml
~/Views/Shared/Map.vbhtml

0

Przecież ci pisze - nie widzi widoku w folderze VIEWS/MAP - tam ma być plik MAP.CSHTML!

1

Ok, to jeszcze raz podsumowując to co napisali koledzy i rozszerzając:
W ASP.MVC ważna jest konwencja nazewnictwa. Po niej mapowane są akcje w routingu (można to zmienić, teraz nie istotne) i po niej następuje wyszukiwanie plików.
Tak czysto krok po kroku:

  1. Controller ma się nazywać XController - gdzie X to jego nazwa, MapController w Twoim wypadku.
    To daje ścieżkę localhost/X/NazwaMethody - localhost/Map/Map w Twoim wypadku.
  2. Metoda - tak jak się ona nazywa tak powinien domyślnie się nazywać widok jeśli nie podajesz jego nazwy w View(). W Twoim wypadku powinien być to plik Map.cshtml
  3. Gdzie ten widok powinien być? w Jakim podfolderze Views?
    Otóż powinien być w podfolderze z nazwą Controlera, czyli Map w Twoim wypadku, a Ty go umieściłeś w Maps.

Taka jest domyślna konwencja.

Przenieś go do odpowiedniego folderu.

0

Ok już rozumiem wszystko sorry, że namąciłem i dzięki za pomoc teraz już będę pamiętał :)

0

Może ktoś podpowiedzieć jak dodać widok, kiedy klikając prawym klawiszem myszy na kontroler nie mam opcji AddView?
Proszę o pomoc, mam ten sam błąd co kolega zakładający ten temat.

EDIT: Mam dokładnie taki problem: https://stackoverflow.com/questions/45509195/add-view-context-menu-option-missing-why-how-do-i-get-it
Nie wiem jak go rozwiązać?

0

Dodajesz widok przez SolutionExplorer

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