Ich versuche, eine teilweise Ansicht zu erhalten, um mit Razor in MVC5 zu rendern. Wenn ich benutze
@{ Html.RenderPartial("ViewName", model); }
Ich erhalte den Parser-Fehler:
Unerwartetes "{" nach dem Zeichen "@". Sobald Sie sich im Körper eines Codeblocks befinden (@if {}, @ {} usw.), müssen Sie nicht mit "@ {" in den Code wechseln.
Wenn ich den {}
entferne, d. H .:
@Html.RenderPartial("ViewName", model);
Ich bekomme den Kompilierungsfehler
Der Typ 'void' kann nicht implizit in 'object' konvertiert werden.
Was mache ich falsch?
Sie haben den Kontext dieses Codes nicht gepostet. Dieser Fehler tritt jedoch nur dann auf, wenn Sie @
direkt in einem Codeblock ohne HTML-Wrapper verwenden. Zum Beispiel:
@if (true) {
@{ Html.RenderPartial(...); }
}
Würde Ihnen den Fehler geben, während:
@if (true) {
<div>
@{ Html.RenderPartial(...); }
</div>
}
Wäre in Ordnung. Sie können es auch lösen, indem Sie einfach den Codeblock für Html.RenderPartial
vollständig entfernen, einschließlich @
:
@if (true) {
Html.RenderPartial(...);
}
Sie können auch @Html.Partial("~/View/Home/myview.cshtml")
verwenden.
Es gibt den String zurück, während Html.RenderPartial
Write intern aufruft, und gibt void zurück.
Das ist falsch:
@Html.RenderPartial("ViewName", model);
Das ist richtig:
@{ Html.RenderPartial("ViewName", model); }
Der Analysefehler kann durch den Inhalt der Teilansicht verursacht werden. Wenn Sie beispielsweise eine E-Mail-Adresse haben, stellen Sie sicher, dass Sie @@ verwenden, um das @ -Zeichen ordnungsgemäß zu deaktivieren.
Unerwartetes "{" nach dem Zeichen "@". Einmal im Körper eines Codes block (@if {}, @ {} usw.) Sie müssen nicht mit "@ {" zu .__ wechseln. Code.
können Sie den Code anzeigen, der Ihr RenderPartial umgibt? Ich vermute, Sie befinden sich in einer Schleife, ob Block oder eine andere Art von Codeblock. Wenn ja, würden Sie einfach anrufen
Html.RenderPartial("ViewName", model);
Verwenden Sie @Html.Partial()
. Es hat drei Überlastungen, übergeben Sie die Parameter entsprechend Ihrer Anforderung.
Bitte überprüfen Sie Ihren Code. Möglicherweise wird dieser Fehler angezeigt, weil Sie diesen Code verwenden: @{ Html.RenderPartial("ViewName", model); }
In einer anderen @{}
-Klausel. Bitte lesen Sie die im Browser angezeigte Fehlermeldung erneut sorgfältig durch. Sie müssen nicht @{}
verwenden, um zum Code zu wechseln, da Sie sich bereits im Code befinden. Entfernen Sie einfach @{
und }
.