Znowu zaczynam programować w ASP.NET i napotkałem mały błąd w programie Visual Studio. Moje pliki .cshtml wyświetlają błędy podczas korzystania z kilku funkcji maszynki do golenia. Na przykład „Nazwa„ ViewBag ”nie istnieje w obecnym kontekście”. Oto zdjęcie:
Używam projektu demonstracyjnego. Projekt można znaleźć tutaj: https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
Przejrzałem kilka innych wątków i większość z nich sugeruje aktualizację pliku (ów) web.config. Te 2 pliki konfiguracyjne są już obecne, a ponieważ jest to dość popularne demo, zakładam, że ma w sobie całą wymaganą konfigurację. Oczywiście przejrzałem te pliki konfiguracyjne i rzeczywiście zawierają one sugerowane rozwiązania.
Inne szczegóły:
- Użyłem już clean & rebuild na rozwiązaniu, ale to nic nie zmieniło.
- Kiedy tworzę zupełnie nowy projekt MVC, to działa
- Mój przyjaciel ma ten sam problem i oboje używamy VS 2015 i Windows 10
- Nadal mogę uruchomić aplikację i działa.
Z góry dziękuję.
źródło
Odpowiedzi:
Miałem ten problem pomimo poprawnej konfiguracji.
Okazało się, że w pamięci podręcznej składników znajdują się złe pliki, które uniemożliwiły widokom Razor rozpoznanie ViewBag, Model i HtmlHelpers . Usunięcie tych plików rozwiązało problem (dobre wersje tych plików zostały utworzone następnym razem, gdy otworzyłem Visual Studio).
Pliki znajdują się tutaj:
Usuń wszystkie cztery pliki:
Później widziałem ten sam problem na kilku innych komputerach programistów i ta poprawka szybko go rozwiązuje.
źródło
Zaktualizuj numery wersji w ustawieniach
web.config
pliku w folderze Widoki.Jeśli zaktualizowałeś wersję MVC za pomocą nuget, powinna być:
Inne wersje zależności mogą również wymagać aktualizacji. Problemy z kompilacją i przestrzenią nazw w widokach dla pomocników i obiektów MVC są zwykle związane z błędnymi
web.config
plikami w folderach widoku.źródło
4.0.0.0
, widziałem to z właściwości. Co powinno być naprawione w moim przypadku?*.cshtml
i*.vbhtml
pliki, a czyste i odbudować rozwiązanie. VS 2019 16.1.2Znajdź „strony internetowe: wersja” w ustawieniach aplikacji i zaktualizuj ją do wersji 3.0.0.0. Mój web.config miał
i zaktualizowałem go do
źródło
Temporary ASP.NET Files
) nie pomogło, ale ta odpowiedź pomogła .Przypadkowo usunąłem się
web.config
zViews
folderu, myśląc, że to niepotrzebne. Kiedy go odłożyłem, zaczęło działać.źródło
Po wypróbowaniu wszystkiego pod słońcem, okazuje się coś zmodyfikował mój
System.Web.WebPages.Razor
<sectionGroup>
in/Views/Web.Config
z właściwego CamelCaseSystem.Web.WebPages.Razor
do wszech małymi literamisystem.web.webpages.razor
, które ostatecznie był mój upadek.Mając nadzieję, że to może pomóc innej biednej duszy w rozwiązaniu tego problemu ...
Dla porównania, to jest poprawny wpis (dla mojego scenariusza)
źródło
Czasami nie wystarczy zmienić numerów wersji w ustawieniach pliku web.config. Ten problem występuje, ponieważ program Visual Studio 2015 nie ma narzędzi MVC4.
Rozwiązaniem jest aktualizacja projektu do wersji MVC 5. To całkowicie rozwiązuje problem. Możesz uzyskać pomoc na tej stronie. To jasno to wyjaśnia.
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
Nawiasem mówiąc, zespół Visual Studio zadeklarował, że doda obsługę mvc4 do Visual Studio 2015 przy pierwszej aktualizacji.
źródło
Wielokrotnie napotykałem ten problem i w końcu odkryłem, że tak się stało, ponieważ folder widoków powinien go zawierać, to własna konfiguracja sieciowa
źródło
późno do gry, ale żadne z tych rozwiązań nie zadziałało.
Po uaktualnieniu do VS 2017 strona działała, ale kompilator Visual Studio zepsuł większość plików .cshtml
TLDR;
mysolution.sln miał niewłaściwą wersję
więc chcesz utworzyć nowe rozwiązanie z nowszym VS i porównać je z twoim i skopiować informacje o wersji.
pełne kroki aktualizacji:
źródło
Zmarnowałem na to dużo pracy. Próbowałem wszystkiego w tym (i innych) postach, ale bezskutecznie. W końcu stwierdziłem, że muszę otworzyć projekt w inny sposób. Właśnie zaktualizowałem istniejącą witrynę internetową do Visual Studio 2015, MVC5, .NET framework 4.5.2 i używam systemu Windows 10, ale podejrzewam, że odpowiedź byłaby taka sama dla innych wersji każdej aplikacji.
Oto opcja menu, którą wybrałem, aby otworzyć stronę internetową:
Zamiast tego otworzyłem plik csproj definiujący projekt za pomocą tej opcji menu:
Wtedy miałem opcję „czystego rozwiązania”, do której odnosi się wiele innych osób:
Jednak nawet tego nie potrzebowałem - wszystko po prostu działało! Cóż, w każdym razie przeszedłem do następnego zestawu problemów ...
źródło
Dodałem kontroler wg
utworzono odpowiedni kod:
Moje błędy zostały zmienione, zmieniając Krok 1 na:
utworzono odpowiedni kod:
Problem polegał na tym, że nie odziedziczyłem klasy po kontrolerze
Uwzględniono inne komunikaty w moim błędzie - wszystkie pochodziły z tego problemu:
Mam nadzieję, że ta zmiana pomoże tym, którzy nie zwracali uwagi na pierwszych krokach.
źródło
Po wypróbowaniu co najmniej 90% każdego rozwiązania / triku na ten temat (i innych), w końcu go rozwiązałem! Spoiler alert, nie ma śladu logiki to tak zwane "rozwiązanie": Uruchomienie rozwiązania z zamkniętymi wszystkimi kartami w końcu zadziałało, gdy nic innego nie oszczędziłoby mi "ViewBag & Co nie istnieje w obecnym kontekście" ... Zostałeś ostrzeżony, bez cholernej logiki!
Mam nadzieję, że kiedyś komuś to pomoże ^^
źródło
W moim przypadku ten problem występował tylko na moim komputerze tylko dla jednego projektu. Mój projekt działał dobrze w VS2012, ale po otwarciu w VS2017 miał ten problem.
Głównym problemem dla mnie była pamięć podręczna. Mój projekt wskazywał na starsze wersje dll z pamięci podręcznej dla Razor i MVC i nie znajdował funkcji, które zostały dodane w nowszych wersjach, takich jak ViewBag. ViewBag został dodany w Razor w wersji 3, ale ponieważ miałem buforowany Razor w wersji 2, nie mógł znaleźć ViewBag (ale mógł znaleźć inne rzeczy, które były obecne w wersji 2). Jednak samo wyczyszczenie pamięci podręcznej, jak w zaakceptowanej odpowiedzi, nie rozwiązało mojego problemu. Musieliśmy zmienić pliki konfiguracyjne, aby powiedzieć „użyj wersji 3 zamiast 2” dla Razor i „użyj wersji 5 zamiast 4” dla MVC, a następnie zamknąć VS, usunąć pamięć podręczną, otworzyć projekt i odbudować. Potem wszystko zostało naprawione. Poniżej znajdują się bardziej szczegółowe instrukcje.
Oto sekwencja zmian, które pomogły mi rozwiązać problem:
Oto te wiersze w moim przypadku:
(uwagi: 1) Twoje wersje mogą być inne, po prostu mówię, co należało zrobić w moim przypadku 2) Pominąłem kilka rzeczy z "..." dla zwięzłości 3) nawet jeśli masz wersję MVC podobną do 5.3.2.0 nadal powinieneś wprowadzić 5.0.0.0, to samo z wersją Razora - wprowadź wszystkie zera w 3.0.0.0)
W głównym pliku konfiguracyjnym (tym na najwyższym poziomie) zmień
webPages:version
z 2.0.0.0 na 3.0.0.0.Ta zmiana prawdopodobnie nie wpłynęła na rozwiązanie, ale nadal o tym wspomnę. Upewnij się, że
<namespaces>
sekcja folderu „Widoki” ma dokładnie taką samą zawartość jak główny plik .conifg w katalogu głównym projektu, na przykład:%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
(lub jakiejkolwiek innej poprawnej ścieżce), tak jak sugeruje to (obecnie) zaakceptowana odpowiedź Fentona. Usuń także.scan
plik, nawet jeśli nie jest wymieniony w tej odpowiedzi. Gdy skończysz, otwórz VS, wyczyść projekt i przebuduj go. Teraz wszystko powinno działać. U mnie to zadziałało.źródło
Wyłączenie go i ponowne włączenie działało dla mnie. Możesz spróbować ponownie uruchomić program Visual Studio.
źródło
Udało mi się rozwiązać ten problem, dodając następujący fragment u góry mojej strony .cshtml
Po ponownej kompilacji udało mi się usunąć tę linię i błąd zniknął.
źródło
Miałem podobny problem z jednym z moich poglądów. W moim przypadku po prostu wyczyściłem rozwiązanie i próbowałem je odbudować i jego działanie.
źródło
poniższy link może ci pomóc.
Pokaże ci, co może być problemem
rozwiązuje mój problem. w jakiś sposób usunąłem plik web.config z folderu widoku.
źródło
Miałem ten sam problem. Wypróbowałem rozwiązanie Clean, Build and Rebuild, ale nie zadziałało.
Więc w końcu zrobiłem jak poniżej:
Mam nadzieję, że to zadziała również dla was.
źródło
Po uaktualnieniu jednej z aplikacji mojego klienta z ASP MVC 4 do ASP MVC 5, mieliśmy błędy projektantów związane z pomocnikami HTML i ViewBag na stronach cshtml.
Aby rozwiązać te problemy, wykonaj następujące czynności: Zainstaluj bibliotekę pomocników sieci Web Asp.NET z Nuget Otwórz plik Web.config projektu i zaktualizuj powiązania, jeśli nie zostały zaktualizowane podczas instalowania na przykład pakietów Nuget
Znajdź „webpages: Version” w ustawieniach aplikacji i zaktualizuj ją do wersji 3.0.0.0. Mój web.config miał
i zaktualizowałem go do
Uruchom ponownie program Visual Studio i odbuduj. Może być konieczne usunięcie folderu bin dla twojego projektu
Odwiedź to: https://lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
źródło
Po wypróbowaniu wszystkiego innego i poczułem się nieco sfrustrowany, zaktualizowałem platformę .NET w mojej aplikacji MVC5 z 4.5 do 4.5.2. Jakoś to rozwiązało mój problem. Mam nadzieję, że to pomoże.
źródło
Rozwiązałem wymianę w web.config
z
źródło