none
Fehlermeldung: _o wurde nicht deklariert - Site funktioniert trotzdem RRS feed

  • Frage

  • Hallo,
    auf einer aspx-Seite ist folgender Code enthalten:

    <div>
     <select id="cmbUrsache">
      <option value="-1" selected="selected" disabled="disabled">bitte auswählen</option>
       <% Dim URSACHE = From f In db.vw_URSACHE
                        Order By f.BEZEICHNUNG
                        Select f
    
                        For Each item In URSACHE
                        Dim dis As String = ""
                        If Not item.AKTIV Then dis = "disabled"
        %>
    
      <option class="translate" <% =dis %> value="<% =item.URSACHE_ID %>"><% =item.BEZEICHNUNG %></option>
       <%Next %>
     </select>
    </div>

    Visual Studio gibt mir dazu folgende Fehlermeldung aus:

    Fehler	BC30451	"__o" wurde nicht deklariert. Aufgrund der Schutzstufe ist unter Umständen kein Zugriff möglich.


    Ein Doppelklick auf die Meldung führt zur Zeile "<option class="translate">".
    Die Seite funktioniert aber trotzdem ohne Probleme, es ist halt nur ein rein "kosmetisches" Problem.

    Trotzdem nervt die ständige Meldung.

    Weiß jemand, woran das liegen könnte?

    Vielen Dank


    Viele Grüße, Volker



    • Bearbeitet Volker S Freitag, 29. April 2022 05:46
    Freitag, 29. April 2022 05:44

Antworten

  • Hallo Volker,

    abgesehen davon, dass es in WebForms eine schlechte Idee ist, solche komischen Codekonstrukte zu basteln (und natürlich auch abgesehen davon, dass die Verwendung von WebForms an sich heute schon eine ganz doofe Idee ist, wenn es nicht um ein Altprojekt geht :)), wäre es sinnvoller, den Code in die CodeBehind Datei auszulagern und mit den WebForms Controls wie Repeater, ListBox, ... zu arbeiten.

    Der Compiler bzw. VS kommt mit deinen Sachen nicht zurecht und erkennt durch die Unterbrechnungen der Codeteile (<% ... %>) nicht, wo dis und/oder item deklariert sind. Das passiert ab und zu und bei diesem Konstrukt zu erwarten.

    Wie gesagt, lagere den Code in die CodeBehind Datei aus und arbeite ggfs. mit einem Repeater. Dann sollte das Problem nicht mehr auftreten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 29. April 2022 10:42
    Moderator

Alle Antworten

  • Hallo Volker,

    abgesehen davon, dass es in WebForms eine schlechte Idee ist, solche komischen Codekonstrukte zu basteln (und natürlich auch abgesehen davon, dass die Verwendung von WebForms an sich heute schon eine ganz doofe Idee ist, wenn es nicht um ein Altprojekt geht :)), wäre es sinnvoller, den Code in die CodeBehind Datei auszulagern und mit den WebForms Controls wie Repeater, ListBox, ... zu arbeiten.

    Der Compiler bzw. VS kommt mit deinen Sachen nicht zurecht und erkennt durch die Unterbrechnungen der Codeteile (<% ... %>) nicht, wo dis und/oder item deklariert sind. Das passiert ab und zu und bei diesem Konstrukt zu erwarten.

    Wie gesagt, lagere den Code in die CodeBehind Datei aus und arbeite ggfs. mit einem Repeater. Dann sollte das Problem nicht mehr auftreten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 29. April 2022 10:42
    Moderator
  • Hallo Stefan,
    vielen Dank für deine Antwort.

    Wie du trefflich bemerkt hast, handelt es sich dabei um ein etwas älteres Projekt.
    Hab es jetzt trotzdem auf Nachladen mit Javascript per Webservice umgestellt.

    An und für sich habe ich nichts gegen WebForms, so lange man nicht die unsäglichen ASP-Controls nimmt.
    ;)

    Das mit der Master/Child-Site fand ich schon ganz hilfreich, aber dafür gibt es mittlerweile auch andere Möglichkeiten.



    Viele Grüße, Volker

    Donnerstag, 19. Mai 2022 11:54