/ / Błąd ASP.NET MVC: "Nazwa" __o "nie jest zadeklarowana." - asp.net-mvc

Błąd ASP.NET MVC: "Nazwa" __o "nie jest zadeklarowana." - asp.net-mvc

Mam cały pakiet tych błędów w moim pliku aspx View.

Ale, buduje i działa dobrze.

Czym oni są? Jak się ich pozbyć?

Odpowiedzi:

8 dla odpowiedzi № 1

Michaił Arkhipov opublikował wyjaśnienie i obejście na forach ASP.NET:

W końcu uzyskaliśmy wiarygodne repro i zidentyfikował podstawę kwestia. Wygląda na trywialne repro to:

<% if (true) { %>
<%=1%>
<% } %>
<%=2%>

Aby zapewnić intellisense w blokach <% =%>w czas projektowania, generowany przez ASP.NET przypisanie do tymczasowej zmiennej __o a następnie język (VB lub C #) intellisense dla zmiennej. Odbywa się to, gdy widzi kompilator strony pierwszy blok <% = ...%>. Ale tu, blok jest w środku, jeśli, więc po if zamyka się, zmienna gaśnie zakresu. W końcu generujemy coś takiego:

if (true) {
object @__o;
@__o = 1;
}
@__o = 2;

Rozwiązaniem jest dodanie manekina ekspresja wcześniena stronie. Na przykład. <% = ""%>. To nie wyrenderuje cokolwiek, i to się upewni __o jest uznawany za najwyższy poziom w metodzie renderowania, przed jakimkolwiek potencjałem Instrukcja "if" (lub inne określenie zakresu).