Blazor с EditForm не работает с компонентомC#

Место общения программистов C#
Ответить
Anonymous
 Blazor с EditForm не работает с компонентом

Сообщение Anonymous »

У меня есть проект Blazor .net 9, который содержит сервер и клиент. В клиентском проекте у меня есть много форм. Эти формы имеют много повторяющихся разделов и некоторые повторяющиеся вопросы. Например, есть раскрывающийся список для каналов (как то, что вы слышите обо мне, а варианты - Bing, Google, друзья и т. Д.).
Я хочу Чтобы лучше организовать эти поля, чтобы избежать избыточного кода. Чтобы упростить, у меня есть основная страница бритвы: < /p>

Код: Выделить всё




@code {
Domain.Client? Client;
Domain.ClientSession? Session;

protected override async Task OnInitializedAsync()
{
_context = new EditContext(Session);
}

public void Save() {
// Client and Session save
}
}
Модели клиента и session подобны этим:

Код: Выделить всё

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; }
}
Тогда начальная форма является настоящим списком входов. Этот код работает. < /P>

Код: Выделить всё




@rl.Name


@rl.Name








@code {
[Parameter, EditorRequired] public SessionInitial? Session { get; set; }
[Parameter, EditorRequired] public Client? Client { get; set; }
}
Логика последней бритвы - собирать информацию у пользователя и сохранить ее в объекте Session или Client . Когда произойдет изменение, я вижу изменение в основном объекте. с новыми ценностями. Я надеюсь, что пока это ясно. Сохраните данные. Итак, компонент называется PhobiaSelection и выглядит так

Код: Выделить всё


@rl.Name


@rl.Name



@code {
[Parameter, EditorRequired] public IList
? Phobias { get; set; } = default!;
}
С помощью этого компонента начальная форма теперь более читаемо и проще

Код: Выделить всё









@code {
[Parameter, EditorRequired] public SessionInitial? Session { get; set; }
[Parameter, EditorRequired] public Client? Client { get; set; }
}
Проблема в том, что в этом случае, если пользователь выбирает что -либо, в сеансе переменной нет изменений . Я вижу, что в PhobiaSelection значение изменяется, но это не меняется. сеанс ?


Подробнее здесь: https://stackoverflow.com/questions/794 ... -component
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»