Проверка Blazor EditForm значения nullable intC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проверка Blazor EditForm значения nullable int

Сообщение Anonymous »

По предложению MrC я создал минимальный воспроизводимый пример, но проблема все еще возникает! Я по-прежнему получаю сообщение об ошибке проверки: «Значение '' недопустимо для 'MyNullableInt'».
Мне пришлось немного изменить пример г-на C, так как мне нужно получить значения из моего отправленную форму, а не просто обновлять ее после отправки, но в остальном это настолько упрощено, насколько я могу.
Я заметил еще одну проблему: событие «@onclick» в заголовок моего столбца, полученный из результатов поиска, никогда срабатывает.
Наконец, я обнаружил, что Console.WriteLine не имеет никакого эффекта, поэтому внедрил средство ведения журнала, которое записывает в мое окно вывода Visual Studio, когда я запускаю его на локальном хосте.
Я должен добавить, что этот компонент работал правильно на странице веб-сборки Blazor, которая была в версии 1 этого проекта - ни одного странного сообщения проверки для обнуляемого целого числа, никаких проблем с событием onclick заголовка столбца. Я переключился на сервер Blazor и заново создал этот компонент, но как только я сделал это переключение, сразу же возникли эти две проблемы.
Я использую .Net 8, создавая новый проект сервера Blazor в Visual Studio 2022, и я никогда не ожидал, что потрачу столько времени на эти два вопроса. Минимально воспроизводимый пример приведен ниже.

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

@page "/Test"
@using Microsoft.Extensions.Logging
@inject ILogger _logger

Test

Test

@if(TestModel != null)
{




Nullable Int


Nullable String


Int




Search


}

@if(TestSearchResults != null)
{




Client
My String



@foreach(var testSearchResult in TestSearchResults)
{

@testSearchResult.MyInt
@testSearchResult.MyString

}



}

@code {
[SupplyParameterFromForm]
public TestForm? TestModel { get; set; }
private List? TestSearchResults;

protected override async Task OnInitializedAsync()
{
TestModel = TestModel ?? new TestForm();
_logger.LogInformation("In OnInitializedAsync");
}

private async Task ColumnHeaderClick(string columnName)
{
_logger.LogInformation($"ColumnHeaderClick {columnName}");
}

private async Task HandleValidSubmit()
{
_logger.LogInformation("In HandleValidSubmit");

TestSearchResults = new List();
for (int i = TestModel.MyNullableInt.GetValueOrDefault(); i < 100; i++ )
{
TestSearchResults.Add(new TestSearchResult()
{
MyInt = i,
MyString = $"MyName{i}"

});
}
}

public class TestForm
{
public int MyInt { get; set; }

public int? MyNullableInt { get; set; }

public string? MyString { get; set; }
}

public class TestSearchResult
{
public int MyInt { get; set; }
public string MyString { get; set; } = string.Empty;
}
}
Оригинальный вопрос ниже
У меня есть серверное приложение Blazor, использующее .Net 8.
В Razor у меня есть EditForm, где я установил в качестве модели такую ​​переменную:

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


Подробнее здесь: [url]https://stackoverflow.com/questions/78867572/blazor-editform-validation-of-nullable-int[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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