Dodałem stronę cshtml w projekcie. Kiedy próbuję dodać do niego następującą deklarację, pojawia się błąd: „Nazwa 'model' nie istnieje w obecnym kontekście”.
@model xyz.abc.SomeClass
Sprawdziłem referencje, wszystkie są na miejscu. Dodałem plik web.config w folderze widoku, ale to nie rozwiązało problemu.
Czy jest coś, czego mi brakuje?
asp.net-mvc-3
razor
user602737
źródło
źródło
Odpowiedzi:
Aktualizacja: Jeśli używasz nowszej wersji MVC, obowiązuje ten sam proces, po prostu upewnij się, że używasz prawidłowego numeru wersji w
<host>
wierszu web.config .Cóż, doświadczyłem tego samego, co ty, i po dalszych badaniach dowiedziałem się, na czym polega problem!
Musisz dołączyć domyślny plik web.config MVC3 dla folderu Views. MVC3 ma dwa: jeden w katalogu głównym aplikacji i jeden w folderze widoków. Zawiera sekcję zawierającą przestrzenie nazw. Upewnij się, że twój wygląda mniej więcej tak:
Sugeruję utworzenie nowego projektu MVC3, a następnie skopiowanie utworzonego dla Ciebie pliku web.config do folderu widoków.
Ważne Gdy to zrobisz, musisz zamknąć plik i ponownie go otworzyć. Voila! Intellisense!
źródło
MAIN
pliku web.config<add key="webpages:Version" value="3.0.0.0" />
Napotkałem ten sam problem, kiedy tworzyłem nowy obszar do organizowania moich stron. Moja konstrukcja wyglądała następująco:
WebProject
Widoki utworzone w folderze Widoki w WebProject działały poprawnie, ale widoki utworzone w obszarze NewArea powodowały następujący błąd:
Aby to naprawić, skopiowałem plik web.config z folderu Views pod WebProject do folderu Views w NewArea. Zobacz poniżej.
WebProject
Wpadłem na to, ponieważ ręcznie utworzyłem ten nowy obszar za pomocą Dodaj -> Nowy folder, aby dodać foldery. Powinienem kliknąć projekt prawym przyciskiem myszy i wybrać Dodaj -> Obszar. Wtedy Visual Studio zająłby się poprawnym ustawieniem obszaru.
źródło
Views/Web.config
została przedstawieniuSystem.Web.Mvc.MvcWebRazorHostFactory
wersji 5.0.0.0, a miałem innej firmy palących odwołań v4.0 i poglądy współpracujących. UstawićViews/Web.config
z powrotem do v4.0 i wszystko działało.Jeśli Twoje widoki znajdują się w zestawie biblioteki klas, co jest przydatne do ponownego wykorzystania wspólnych widoków w projektach, to samo robienie tego, co sugeruje Adam, może nie wystarczyć. Nadal miałem problemy, nawet z tym.
Spróbuj tego w swoim pliku web.config w katalogu głównym projektu:
A to w pliku web.config w folderze widoków:
To zadziałało dla mnie. Mam teraz funkcję Intellisense i brak błędów kompilacji w moich widokach w projekcie innym niż MVC, do którego mogę następnie odwoływać się z wielu witryn internetowych MVC.
źródło
Natknąłem się na ten problem, gdy nieumyślnie miałem kopię pliku widoku (About.cshtml) dla trasy / about w katalogu głównym. (Nie folder widoków) Po przeniesieniu pliku z katalogu głównego problem zniknął.
źródło
Miałem podobne problemy z VS2012 i VS2013.
Dodanie następującego wiersza do <appSettings> w głównym pliku web.config zadziałało:
Jeśli linia już tam była, ale wskazała 2.0.0.0, zmiana na 3.0.0.0 zadziałała.
źródło
Aktualizacja: 05.05.2015 W projekcie MVC 5 musisz ustawić wersję na 5.0.0.0 w swoim /views/web.config
źródło
Podczas deklarowania modelu u góry widoku za pomocą następującego kodu:
poniżej należy wpisać wielkie litery, na przykład:
Uważam, że brakujący plik web.config w folderze Views byłby główną przyczyną tego problemu, ale jeśli problem zostanie rozwiązany, a problem nadal występuje, sprawdź, czy używasz modelu , a nie modelu, aby odwołać się do niego w źródle.
źródło
Ja też napotkałem ten problem. Moje okoliczności były trochę inne.
Jeden z moich folderów widoku został przypadkowo przeniesiony do katalogu głównego mojego projektu. Prowadzi to do
project_root/SignUp/ViewName
wcześniejszego dopasowania trasyproject_root/Views/SignUp/ViewName
. To spowodowało@model
błąd.Po przeniesieniu widoków z powrotem do odpowiedniej lokalizacji katalog został w jakiś sposób odtworzony w katalogu głównym projektu. Tym razem pusty.
/SignUp/ViewName
zadziałało, ale/SignUp/
wyrzuciło403 - Forbidden: Access is denied.
błąd. Cały folder musi być usunięte z katalogu głównego projektu.Mam nadzieję, że to komuś pomoże. Spędziłem wiele godzin wierząc, że problem był spowodowany przez naszą ostatnią aktualizację z MVC 3 do MVC 4. Tylko uwaga: problemy z aktualizacją powinny występować tylko między MVC 2 i MVC 3. Jeśli widzisz ten problem w późniejszych wersjach, prawdopodobnie nie jest to spowodowane Aktualizacja.
źródło
Zajęło mi to wieki, aby rozwiązać ten problem, ale w końcu mam nadzieję, że rozwiązałem go na MVC, czyli podobnie:
Zainstalowałem ponownie ASP.NET 4.5 ( http://www.asp.net/downloads )
Postępowałem zgodnie z samouczkiem dotyczącym aktualizacji dostępnym pod adresem http://www.asp.net/whitepapers/mvc4-release-notes
ALE ten wspomniany akapit jest dla mnie niewłaściwy
Ponieważ mam Razor w System.Web.Razor , więc zmieniłem przestrzeń nazw Razor na System.Web.Razor.
Dodaj to do swojego pliku web.config
Dodałem odwołanie do zestawu do wszystkich powyższych zestawów
Znajdź element ProjectTypeGuids i zamień {E53F8FEA-EAE0-44A6-8774-FFD645390401} na {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
To wszystko.
źródło
<add key="webpages:Version" value="2.0.0.0" />
jest to czynnik napędzający, drugie ustawienie nie jest potrzebne.3.0.0.0
ale tak, to jest bardzo ważne!To okropny błąd, ale:
Upewnij się, że masz pliki Web.config w widoku na zdalnym . Być może pominąłeś przesyłanie go za pomocą filtrów programu FTP.
źródło
Brakowało mi pliku web.config w obszarze Obszary / MyArea / Views / web.config. Po dodaniu działało dobrze. Tak było w przypadku MVC 5 i .NET4.5
źródło
Jest też inny powód. W moim przypadku skopiowałem plik index.cshtml do głównego folderu sieci (poza folderem Views) jako kopię zapasową ze zdalnego serwera.
Więc ciągle zmieniałem mój /views/web.config, ciągle zmieniałem mój /views/home/index.cshtml i błąd ciągle się pojawiał ... dopóki nie znalazłem /index.cshtml poza folderem widoków, usunąłem go i na pewno wszystko wróciło do normy!
źródło
Napotkałem ten sam problem, ale w moim przypadku jedyne, co się zmieniło, to odinstalowanie programu Visual Studio 2012 i zainstalowanie programu Visual Studio 2013. Otworzyłem nasze rozwiązanie, ale
The name 'model' does not exist in current context
w każdym widoku Razor pojawiał się ten sam błąd.Mój współpracownik zasugerował sprawdzenie dostępności aktualizacji VS2013. Po zainstalowaniu aktualizacji VS2013 Update 1 przestałem otrzymywać ten błąd.
źródło
Sprawdź swój plik konfiguracyjny w katalogu views. w dodaniu klucza do MVC 4/5
źródło
Ponowna instalacja nugeta rozwiązała to za mnie
PM> Install-Package Microsoft.AspNet.Razor -Version 3.2.3
źródło
Dla mnie to był problem. W sekcji brakowało całego bloku.
źródło
Mam ten sam problem po aktualizacji pakietów. Zrobiłem wszystko, co napisałeś powyżej w tym temacie, ale czerwona podstawa słowa kluczowego model nie zniknęła. Później znalazłem rozwiązanie: właśnie usunąłem folder `` pakiet '' z katalogu mojego projektu i ponownie skompilowałem, w międzyczasie umożliwiło NuGet przywrócenie brakujących pakietów. Odświeżony i gotowe!
źródło
Sprawdź, czy Twój plik web.config powinien istnieć w opublikowanych plikach
źródło
Miałem ten sam problem, a potem znajdowałem rozwiązanie. Rozwiązaniem jest:
Plik .suo jest plikiem ukrytym w tym samym folderze, w którym istnieje plik rozwiązania .svn . Mam nadzieję, że zadziała!
źródło