Mein Hauptmeister ist im Client -Projekt, wie für eine WebAssembly -App erforderlich ist.
Sie funktionieren sehr gut in WASM, aber der Sider -Flyout funktioniert nicht, wenn die aufgewendete Seite den InteractiveServer -Rendermodus verwendet. (Wenn dies tatsächlich der Modus ist, den es verwendet). Um ein ähnliches Problem wie mein eigenes zu beschreiben.
Code: Select all
...
...
< /code>
Die Seiten laden, aber dann übernimmt eine Art Routenkontrolle und zeigt "nicht gefunden". < /p>
Ich hatte anfangs das gleiche [url=viewtopic.php?t=11587]Problem[/url] Nr. egal was ich getan habe, bis ich den App.Razor -Code geändert habe. >
private IComponentRenderMode? RenderModeForPage =>
(HttpContext.Request.Path.StartsWithSegments("/Account")
|| HttpContext.Request.Path.StartsWithSegments("/Pages")
|| HttpContext.Request.Path.StartsWithSegments("/Win")
)
? null
: RenderMode.InteractiveWebAssembly;
< /code>
Also werden meine Pfade mit 'Seiten' oder 'Win' jetzt gefunden, aber die Rendermodes für das Layout scheint statisch zu rendern. < /p>
Ich musste eingehen und mich damit umgearbeitet haben, indem ich eine weitere Unterabteilung für die Administratorseiten auf der Serverseite bereitstellte. Dies war ein bisschen ein Kludge und ich muss es jetzt reparieren. Auch für weitere Informationen habe ich kürzlich auf .net 9 aktualisiert. Noch.
< /code>
Wenn es andere Codeelemente gibt, die Sie sehen müssen, lassen Sie es mich wissen, aber es ist dem oben erwähnten Beitrag sehr ähnlich. < /p>
I Müssen Sie den interaktiven Render -Modus für das Layout (oder WASM) zum Layout bearbeiten - wenn Sie ein WASM -Layout mit interaktivem Server mischen können?) < /p>
Bearbeiten < /em>
Ich erinnerte mich, dass .NET 9 einige Einrichtungen hinzugefügt hat, um die Rendermodi auf der Seite zu unterteilen.
[list]
[*]Name: @RendererInfo.Name
[*]Is Interactive: @RendererInfo.IsInteractive
[*]Assigned Render Mode: @AssignedRenderMode
[/list]
Nach dem Klicken auf einen serverbasierten Link:
< /p>
Nur um einen Kontext hinzuzufügen. > Ich werde meine gesamte "app.razor" nicht veröffentlichen, da es zu groß ist, aber so habe ich derzeit das Headoutlet und die Routen eingerichtet: < /p>
< /code>
Wenn ich diese für das in der obige Lösung vorgeschlagene Setup ändere, erhalte ich den nicht gefundenen Fehler. Durch Ändern des oben angegebenen App.razor -Codes in Folgendes: < /p>
private IComponentRenderMode? RenderModeForPage
{
get
{
if (HttpContext.Request.Path.StartsWithSegments("/Account")) return null;
if (HttpContext.Request.Path.StartsWithSegments("/Pages")) return RenderMode.InteractiveServer;
if (HttpContext.Request.Path.StartsWithSegments("/Win")) return RenderMode.InteractiveServer;
return RenderMode.InteractiveWebAssembly; ;
}
}
< /code>
Als Antwort auf Jdwengs Punkt unten glaube ich nicht, dass es sich um ein Sicherheitsproblem handelt (nicht abgelehnt), aber es handelt sich um einen No -Inhalts -Fehler (204), mit dem es zurückkommt. Das Hintergrundbild zu meiner Website ist noch da, also denke ich, dass dies auf eine Art Routing -Problem hinweist? < /p>
@rendermode InteractiveServer
< /code>
... es funktioniert auch interaktiv. Nur dass das Flyout -Menü nicht funktioniert, weil es statisch gerendert wird ...