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 |
|