Я должен добавить проверку данных для полей ввода даты и времени для существующего Asp. net Core 3.1 Blazor проекта; Я впервые работаю с Blazor.
У меня есть привязка данных настройки в поле ввода даты (в котором есть средство выбора даты и данные, связанные с переменной DateTime) без проблем. Тем не менее, случай не совпадает с вводом времени (который имеет выбор времени и связан с другой переменной DateTime.)
Короче говоря, когда пользователь использует выбор времени для установки времени и закрывает его время в поле ввода возвращается к тому времени, когда оно было изначально установлено. Например, если ввод времени в настоящее время установлен в 12:00, а затем пользователь выбирает новое время из палитры времени (скажем, в 2:00 пополудни), пользователь нажимает кнопку ОК и закрывает палитру времени, время на входе возвращается в 12:00. У меня есть другой ввод времени на той же странице, но данные привязаны к строке вместо DateTime, и если время снова устанавливается в палитре времени, время сохраняется.
Я написал очень короткую программу, чтобы продемонстрировать проблему. Моя примерная страница имеет три поля ввода: Дата, Время и другое Время, но ее данные привязаны к строке.
@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<div class="wrapper">
<section class="createevent">
<EditForm EditContext="@_editContext" OnValidSubmit="@HandleValidSubmit" OnInvalidSubmit="@HandleInvalidSubmit">
<DataAnnotationsValidator />
<div class="form-group">
<p>
<label>
Date:
</label>
<input id="txtDate" type="date" required @bind-value="_timeSample.date" />
<ValidationMessage For="@(() => _timeSample.date)" />
</p>
</div>
<div class="form-group">
<p>
<label>
Time:
</label>
<input id="txtTime" type="time" required @bind="_timeSample.time" />
<ValidationMessage For="@(() => _timeSample.time)" />
</p>
</div>
<div class="form-group">
<p>
<label>
Time2:
</label>
<InputText id="txtTime2" type="time" required @bind-Value="_timeSample.text" />
<ValidationMessage For="@(() => _timeSample.text)" />
</p>
</div>
</EditForm>
</section>
</div>
@code
{
public class TimeSample
{
public DateTime date { get; set; }
public DateTime time { get; set; }
public string text { get; set; }
};
private EditContext _editContext;
private TimeSample _timeSample = new TimeSample();
protected override void OnInitialized()
{
_editContext = new EditContext(_timeSample);
}
private void HandleValidSubmit()
{
}
protected void HandleInvalidSubmit()
{
}
}