#

Fehlermeldung: Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code

 

 

In folgendem Code eines Asp.Net Core MVC Projekts wird in Visual Studio der folgende Fehler angezeigt

Fehlermeldung:

Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code

 

Datei vorkommen:

In Asp.Net Core -> View Razor Code

 

Fehlerhafter Razor Code

in Asp.Net Core View

 <div id="divMain_List" class="divMain_List">

 

     @foreach (var item in articles)

     {

 

 

  @*----< row >----*@

  @{

      string sURL_Folder = item.IDArticle.ToString();

      if (sQuery != "") { sURL_Folder = sURL_Folder + sQuery; }

  }

  <div class="list_Div_Row shadow-sm rounded ">

 

      <a href="/📁/@sURL_Folder" title="@Html.DisplayFor(modelItem => item.Folder)" class="list_href">

   📂 @Html.DisplayFor(modelItem => item.Folder)

      </a>

  </div>

 

 

In Visual Studio

View Datei Views/Articles/Index.cshtml

 

 

Lösung:

Wenn man sich in einer .cshtml View Datei befindet, welche server seitigen Asp.Net Core @Razor Code bearbeitet,

dann befindet sich der Server Code in der @{..} geschweiften Klammer.

Innerhalb dieser Klammer kann man nicht nochmals eine @{..sub..} geschweifte Klammer einfügen.

Der Compiler befindet sich schon im lesen von Server Code.

 

Der Server Code endet meistens teilweise mit der <html> Tag Klammer.

Innerhalb der @{..Server Code ..} Klammer werden <html> Tags eingefügt und bearbeitet. Diese werden direkt ausgegeben. Deshalb müssen wiederum in der <html> tag die Server Variablen und Werte mit @Server-Variable eingefügt werden oder mit title="@Html.DisplayFor(modelItem => item.Folder)" als Html.Display ausgegeben werden

 

Code ohne Razor-Fehler

 @foreach (var item in articles)

 {

     //*Razor Starts Server Code after {..

 

     @*----< row >----*@

     //*Razor still Server Code   

     string sURL_Folder = item.IDArticle.ToString();

     if (sQuery != "") { sURL_Folder = sURL_Folder + sQuery; }

 

     //*here ends Razor Server code and switches to client code with <html>-Tags

     <div class="list_Div_Row shadow-sm rounded ">

 

         <a href="/📁/@sURL_Folder" title="@Html.DisplayFor(modelItem => item.Folder)" class="list_href">

  📂 @Html.DisplayFor(modelItem => item.Folder)

         </a>

     </div>

 

 

 

Severity

Code

Description

Project

File

Line

Suppression State

Error

 

Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.

CodeDocu

D:\Programmierung\Web\CodeDocu\CodeDocu\Views\Articles\IndexList.cshtml

37

 

 

 

 

 

Mobile

.

0123movie.net