Как я могу предоставить пользовательскую проверку во входном тексту, который генерируется через цикл 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);
}
}
Я пытался программно обработать проверку для определенного поля, когда оно пусто в этом подходе (если это возможно), но я не могу достичь того, что хотел. Я уже знаю, что основная реализация встроенной проверки в Blazor заключается в наборе полей, которая соответствует каждой текстовой записи. Подход, который я пытаюсь достичь, заключается в том, чтобы предоставить пользовательскую проверку, с реконцептуализированным источником привязки поля. Я пытался выяснить это ограничение и его соответствующий обходной путь, так как это, очевидно, динамическая настройка InputText < /code>. < /P>
Вот мой дополнительный вопрос, помимо заголовка для этого контекста: < /p>
  • есть обходной завод для этого подхода? Если так, как это может быть реализовано правильно?


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

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

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

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

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

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