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