Po znaczącym refaktoryzacji w mojej aplikacji MVC 4 i Razor pokazuje ten błąd podczas debugowania widoków:
Nazwa „model” nie istnieje w bieżącym kontekście.
Oto obraźliwa linia kodu:
@model ICollection<DataSourceByActive>
Wiem, że użycie @model
jest prawidłowe.
Dlaczego to się dzieje? Jak mogę to naprawić?
asp.net-mvc
asp.net-mvc-4
razor
Kehlan Krumme
źródło
źródło
Odpowiedzi:
Myślę, że zepsułeś plik web.config, który znajduje się w folderze Widoki.
Utwórz nowy projekt ukierunkowany na tę samą platformę .NET i skopiuj jego plik Views / web.config na jeden z bieżącego projektu. To rozwiąże twój problem.
Ponadto, jak skomentował Dudeman3000, jeśli masz obszary w projekcie MVC, one również mają
Views\web.config
pliki.źródło
This will fix your problem.
To nie mialo miejsca.Upewnij się, że masz następujące informacje w witrynie
Web.config
i katalogu widokówWeb.config
wappSettings
sekcjiW przypadku MVC5:
(I istnieje tylko w głównym
Web.config
pliku).źródło
3.0.0.0
. (I istnieje tylko w głównym pliku Web.config.)2.0.0.0
zamiast3.0.0.0
. Zmiana rozwiązała problem. Dziękuję Ci!Oto co zrobiłem:
Plik .suo jest ukrytym plikiem w tym samym folderze, co plik rozwiązania .svn i zawiera Opcje użytkownika programu Visual Studio.
źródło
web.config
pliku dlaASP.NET Core
aplikacji, więc to zadziałało dla mnie (dodałem także rozszerzenia dla ulepszonej inteligencji)..vs
folderu pomogło.Miałem ten sam problem, stworzyłem nowy projekt i skopiowałem pliki web.config zgodnie z zaleceniami Gupty, ale to nie rozwiązało problemu. Sprawdziłem odpowiedź Alexa i Liama, myślałem, że ten wiersz musiał zostać skopiowany z nowego pliku web.config, ale wygląda na to, że sam projekt nie miał tego wiersza (MVC5):
Dodanie wiersza do pliku views / web.config rozwiązało problem.
źródło
Zmiana następującego wiersza w pliku web.config folderu widoku rozwiązała ten sam błąd.
Z
Do
źródło
System.Web.Mvc
odniesienie do zespołu, aby potwierdzić, której wersji głównej potrzebujesz.W moim przypadku niedawno zaktualizowałem z MVC 4 do MVC 5, co dość źle psuje web.config. Ten artykuł ogromnie pomógł.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
Najważniejsze jest to, że musisz sprawdzić wszystkie odwołania do numerów wersji w plikach web.config i Views / web.config, aby upewnić się, że odnoszą się one do prawidłowych uaktualnionych wersji powiązanych z MVC 5.
źródło
Zmiana na @Model z @model wykonała dla mnie pracę.
@model reprezentuje typ obiektu Model widoku. @Model reprezentuje obiekt View Model.
źródło
Znalazłem rozwiązanie. Jeśli chcesz zaktualizować wersję maszynki do golenia lub mvc 4 do 5, zmień niektóre linie.
Stary kod w Views / web.config
Zamieniono na
sectionGroup
musi być także zmiana.źródło
W moim przypadku przydatny jest następujący kod. Umieść poniższy kod w pliku Web.config w folderze Widoki.
Po zaktualizowaniu kodu należy wyczyścić i odbudować rozwiązanie. Mam nadzieję, że to ci pomoże!
źródło
Żadna z istniejących odpowiedzi nie działała dla mnie, ale znalazłem co zrobił dla mnie pracować porównując
.csproj
pliki różnych projektów. Poniższa ręczna edycja.csproj
pliku XML rozwiązała dla mnie problem Razor-intellisense, być może może to pomóc komuś innemu, kto wypróbował wszystkie inne odpowiedzi bezskutecznie. Kluczem jest usunięcie wszelkich wystąpień<Private>False</Private>
w<Reference>
:Nie wiem, jak się tam dostali lub co dokładnie robią, może ktoś mądrzejszy ode mnie może dodać tę informację. Byłem szczęśliwy, że w końcu mogłem rozwiązać ten problem.
źródło
Z jakiegoś powodu mój plik web.config miał 0.0.0.0 w atrybucie oldVersion:
zmiana na 1.0.0.0 była rozwiązaniem:
źródło
Korzystałem z projektu MVC4 z Visual Studio 2019 - i okazało się, że VS 2019 nie obsługuje MVC 4 od razu po wyjęciu z pudełka. Musisz to zainstalować.
Kroki:
UWAGA: Wymagane do zamknięcia studia wizualnego
źródło
W moim przypadku problem polegał na tym, że po uaktualnieniu projektu z MVC 4 do MVC 5 jakoś przegapiłem zmianę wersji w Views / web.config:
Nadal miał starą wersję 2.0.0.0. Po zmianie wersji na 3.0.0.0 wszystko zaczęło działać poprawnie.
Ponadto, z powodu tego problemu, Visual Studio 2015 Community Edition zacząłby uderzać procesor (zużycie 30-40% w stanie bezczynności) za każdym razem, gdy otwierałem plik .cshtml.
źródło
Miałem ten sam problem podczas wdrażania w usłudze Azure App Service
W moim przypadku było tak, ponieważ ~ / Views / Web.config nie został uwzględniony w projekcie.
Działało w IIS Express, ale kiedy wdrożyłem lazur, dostałem ten sam błąd. Ponieważ nie został uwzględniony w pliku .csproj, nie został wdrożony.
Rozwiązaniem było upewnienie się, że ~ / Views / Web.config jest włączony do projektu.
Jeśli przejdziesz do eksploratora rozwiązań i klikniesz ikonę „Pokaż wszystkie pliki”, a następnie otworzysz Widoki, możesz zobaczyć tam niewłączony plik Web.config.
Dodaj, opublikuj ponownie, a Bob jest twoim wujem.
źródło
Dla mnie problemem była sprzeczna wersja .NET w jednej z bibliotek, które niedawno zaimportowałem. Biblioteka, którą zaimportowałem została skompilowana dla wersji 4.5.2, a witryna ASP.NET MVC zaimportowałem ją do docelowej wersji 4.5. Po ponownej kompilacji lib dla 4.5 strona się skompiluje.
Ponadto nie wystąpiły błędy kompilacji, ale problem został zgłoszony jako „ostrzeżenie”. Przeczytaj więc wszystkie ostrzeżenia, jeśli takie istnieją.
źródło
Aby rozwiązać ten problem, upewniłem się, że zaktualizowałem do najnowszej wersji MVC za pomocą NuGet i konsoli Menedżera pakietów.
Zainstaluj pakiet Microsoft.AspNet.Mvc-Wersja 5.2.4
Następnie zaktualizowano do najnowszej wersji Razor
Zainstaluj pakiet Microsoft.AspNet.Razor-Wersja 3.2.4
Następnie zmieniłem wszystkie pliki web.config, aby odzwierciedlić zmianę. Jak zobaczysz poniżej:
Upewnij się, że w głównym pliku web.config strona: wersja jest poprawna. Oto, gdzie można go znaleźć (zignoruj inne klucze):
Następnie poszukaj innych wersji wymienionych w zestawach, sprawdź wersję zestawu z wersją biblioteki wymienioną w odniesieniach do projektu! Możesz nie potrzebować ich wszystkich.
Runtime assemblyBinding powinien również pokazywać „newversion”, zobacz gdzie czyta NewVersion 5.2.4.0? Ale sprawdź także wszystkie pozostałe wersje.
NASTĘPNIE w sekcji Widoki Web.Config upewnij się, że Razor jest poprawną wersją:
I Lastlt jest sekcja Strony Widoki Web.Config
źródło
jeśli weźmiesz ten problem bez żadnych zmian w projekcie tak jak ja, musisz zmienić swój web.config, który został umieszczony w folderze View. po prostu napisz nowy wiersz przez Enter lub Usuń pusty wiersz. następnie zapisz plik web.config i przebuduj. mój problem rozwiązany dzięki temu rozwiązaniu
źródło
Próbowałem dodać widok, który znajdował się poza moim folderem „Widoki” (tak mi się wydaje, żeby inaczej zorganizować kod), gdy miałem ten problem. Utworzenie widoku wewnątrz widoków (zgodnie z konwencją) rozwiązało go.
źródło
W moim przypadku brakowało @ na początku foreach
źródło
W moim przypadku przypadkowo usunąłem plik web.config z folderu Widoki. Dodałem go z powrotem i było OK.
źródło
Rozwiązałem problem, używając
@Model
zamiast tylkomodel
podczas drukowania zmiennych.źródło
Prawdopodobnie użyjesz w kodzie zmiennej o nazwie
model
.źródło