Blazor mit Editform funktioniert nicht mit Komponenten
Posted: 21 Feb 2025, 01:37
Ich habe ein .NET 9 Blazor -Projekt, das einen Server und einen Client enthält. Im Kundenprojekt habe ich viele Formen. Diese Formen haben viele sich wiederholende Abschnitte und einige wiederholte Fragen. Zum Beispiel gibt es eine Dropdown -Liste für Kanäle (wie Sie es über mich hören, und die Optionen sind Bing, Google, Freunde usw.).
Ich möchte Um diese Felder besser zu organisieren, um redundante Code zu vermeiden. Zur Vereinfachung habe ich eine Haupt -Rasier -Seite: < /p>
Die Modelle Client und Sitzung sind wie folgt:
Dann ist die Initialform eine ziemliche Liste von Eingängen. Dieser Code funktioniert. < /P>
Die Logik des letzten Rasiermessers besteht darin, Informationen vom Benutzer zu sammeln und sie im Session oder client zu speichern. Wenn es eine Änderung gibt, sehe ich die Änderung im Hauptobjekt. mit den neuen Werten. Ich hoffe, es ist bisher klar. Speichern Sie die Daten. Die Komponente heißt also PhobiaSelection und sieht so aus
Mit dieser Komponente ist die Initialform jetzt lesbar und einfacher
Das Problem ist, dass in diesem Fall, wenn der Benutzer etwas auswählt, keine Änderungen in der variablen Sitzung gibt. Ich kann sehen, dass in der PhobiaSelection die Wertänderungen, dies jedoch nicht ändert. Die Sitzung ? EventCallback oder eventCallback überall erhalte ich immer noch diesen Fehler. Beschreibung hier "src =" https://i.static.net/2fqaukem.png "/>
Und genau das ist was Ich sehe auf ValueSchanged
Und dies ist ein weiterer Versuch < /p>
Ich möchte Um diese Felder besser zu organisieren, um redundante Code zu vermeiden. Zur Vereinfachung habe ich eine Haupt -Rasier -Seite: < /p>
Code: Select all
@code {
Domain.Client? Client;
Domain.ClientSession? Session;
protected override async Task OnInitializedAsync()
{
_context = new EditContext(Session);
}
public void Save() {
// Client and Session save
}
}
Code: Select all
public class Client
{
public string? PhobiasNote { get; set; }
}
public class ClientSession
{
public SessionInitial? SessionInitial { get; set; }
}
public class SessionInitial
{
public bool HasPhobias { get; set; }
public IList
? Phobias { get; set; }
}
Code: Select all
@rl.Name
@rl.Name
@code {
[Parameter, EditorRequired] public SessionInitial? Session { get; set; }
[Parameter, EditorRequired] public Client? Client { get; set; }
}
Code: Select all
@rl.Name
@rl.Name
@code {
[Parameter, EditorRequired] public IList
? Phobias { get; set; } = default!;
}
Code: Select all
@code {
[Parameter, EditorRequired] public SessionInitial? Session { get; set; }
[Parameter, EditorRequired] public Client? Client { get; set; }
}
Und genau das ist was Ich sehe auf ValueSchanged
Und dies ist ein weiterer Versuch < /p>