Как я могу предоставить пользовательскую проверку во входном тексту, который генерируется через цикл Foreach?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу предоставить пользовательскую проверку во входном тексту, который генерируется через цикл Foreach?

Сообщение Anonymous »

Я обнаружил, что мой дизайн Blazor для этого конкретного контекста необычен, и у меня проблемы с выяснением, как его обратиться.

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

[Keyless]
public class Specs
{
[Column("id")]
public string? ID { get; set; }

[Column("name")]
public string? Name { get; set; }

[Column("value")]
public string? Value { get; set; }

[Column("rank")]
public int Rank { get; set; }
}
< /code>
 держатель модели данных класса данных держателя модели, модифицированных пользователем < /h4>
public class SpecsEntryHolder(string? id, string? n, string? val, int rank)
{
public string? ID { get; set; } = id;

public string? Name { get; set; } = n;

public string? Value { get; set; } = val;

public int Rank { get; set; } = rank;
}
< /code>
 переопределить эти модели класса данных в виде списка < /h4>
public List SpecsList { get; set; } = [];
public List SpecsEntryHolderList { get; set; } = [];
< /code>
Я клонировал данные с помощью этого подхода: < /p>
// SpecsList has already been fed with the database records.
SpecsEntryHolderList = SpecsList.Select(v => new SpecsEntryHolder(v.ID, v.Name, v.Value, v.Rank)).ToList();
< /code>
На странице UI Razor: < /p>


@foreach (var specs in SpecsEntryHolderList)
{

@($"{specs.Name}")



}

Вот как это выглядит:

Я надеялся, что это будет работать, но это не так:

PrettyPrint-Override ">private void FormatOnBlurSpecs(FocusEventArgs e)
{
foreach (var spec in SpecsEntryHolderList)
{
var fieldIdentifier = new FieldIdentifier(spec, nameof(spec.Value));
if (string.IsNullOrWhiteSpace(spec.Value))
{
messageStore!.Add(fieldIdentifier, $"{spec.Name} is required.");
}
messageStore?.Clear(fieldIdentifier);
}
}
< /code>
В приведенном выше примере я предоставил минимальную настройку для упрощения процесса. Однако в реальном приложении вы должны обрабатывать проверку сообщений для каждого текстового поля, так как они, скорее всего, не будут одинаковыми. Например, каждое поле имеет свою конкретную проверку, которая не похожа на другие поля. Я уже знаю, что основная реализация встроенной проверки в Blazor заключается в наборе полей, которая соответствует каждой текстовой записи. Подход, который я пытаюсь достичь, заключается в том, чтобы предоставить пользовательскую проверку, с реконцептуализированным источником привязки поля. Я пытался выяснить это ограничение и его соответствующий обходной путь, так как это, очевидно, динамическая настройка InputText < /code>. < /P>
Вот мой дополнительный вопрос, помимо заголовка для этого контекста: < /p>
  • есть обходной завод для этого подхода? Если так, как это может быть реализовано правильно?


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

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

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

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

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

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