Каким-то образом за последние 2 дня моя привязка данных к модели нарушилась на моих страницах, используемых для «добавления новых» и «обновления» записей базы данных. У меня есть код ниже - я свернул его для просмотра.
@page "/NewRepairOrder"
@using ShopLiveWebVersion2._0.Models
@using ShopLiveWebVersion2._0.DataAccess
@using ShopLiveWebVersion2._0.Services
@using ShopLiveWebVersion2._0.Data
@inject IUriHelper UriHelper
@inject RepairOrderContext context
<div class="container">
@if (RO == null)
{
<div class="row">
<div class="col-lg-6 float-right">
<h2>Loading....</h2>
</div>
</div>
}
else
{
<div class="row">
<div class="col-lg-1"></div>
<div class="col-lg-10">
<h2>Add New Repair Order</h2>
<h4>@ErrorMessage</h4>
</div>
</div>
<div class="row">
<div class="col-lg-1"></div>
<div class="col-lg-2">
<label for="ControlNumber" class="Control-label">Repair Order #:"</label>
<input for="ControlNumber" class="form-control" bind="@RO.ControlNumber" maxlength="15" required />
</div>
HTML-код страницы продолжает включать другие поля ввода и выбора. Ниже приведен весь блок функций.
@functions
{
private OptionsDataAccess OpsData;
private RepairOrderDataAccess ROData;
private List<LocationOptions> LocationOps;
private List<EmployeeOptions> EmployeeOps;
private List<StatusOptions> StatusOps;
private RepairOrder RO = new RepairOrder();
private string ErrorMessage;
protected override async Task OnInitAsync()
{
LocationOps = new List<LocationOptions>();
EmployeeOps = new List<EmployeeOptions>();
StatusOps = new List<StatusOptions>();
OpsData = new OptionsDataAccess(context);
ROData = new RepairOrderDataAccess(context);
LocationOps = await Task.Run(() => OpsData.GetAllLocationOptions());
EmployeeOps = await Task.Run(() => OpsData.GetAllEmployeeOptions());
StatusOps = await Task.Run(() => OpsData.GetAllStatusOptions());
}
private void SaveRepairOrder()
{
try
{
ROData.AddRepairOrder(RO);
//UriHelper.NavigateTo("/Home");
}
catch
{
ErrorMessage = "Could not Save the Data -- try again";
}
}
}
У меня изначально было "RO = new RepairOrder ();" в методе InitAsync (), когда объявление было снаружи. Бросая слюну, я включил его как один вкладыш вне метода.
Когда я нажимаю кнопку сохранения, RO со всеми значениями NULL сохраняется в базе данных.
Я добавил элементы метки внизу страницы, привязанные к тем же данным, что и входные данные, и выберите, чтобы увидеть эффект перед закрытием страницы, и они также показывают NULL.
Я также попытался создать отдельные строковые элементы для каждого, а затем непосредственно перед отправкой RO в базу данных выполнить "RO. = {Item};".
Кто-нибудь видел, чтобы привязка была отключена таким образом?