Я делаю систему для работы с ядром aspnet.
В системе у меня есть регистр транзакций, который уже работает правильно, и в этот момент я делаю возможность редактировать транзакцию, которая былаЗарегистрированные в системе, когда я нажимаю на кнопку «Изменить», появляется форма с заполненными старыми данными, одна из которых «Данные», но по какой-то причине я не могу показать дату.
Я уже сделал несколько проверок, которые:
-Когда я нажимаю изменить, идентификатор элемента передается по URL.В модели TransactionModel logged_user_id и id элемента передаются корректно.
-Каждая переменная, которая добавляется в объект элемента в методе LoadStatus, добавляется правильно.
Но для некоторыхпричина, когда она приходит в View, переменные не принимают значения, они остаются 0 или пустыми
View
@model TransacaoModel
<h3>Registrar Transação</h3>
@{
var vData = "";
var vDescricao = "";
var vTipo = "";
var vValor = 0;
var vId = 0;
var vContaId = 0;
var vPlanoContaId = 0;
try
{
vId = int.Parse(ViewBag.Registro.Id.ToString());
vData = DateTime.Parse(ViewBag.Registro.Data.ToString());
vContaId = int.Parse(ViewBag.Registro.Conta_Id.ToString());
vValor = double.Parse(ViewBag.Registro.Valor.ToString());
vPlanoContaId = int.Parse(ViewBag.Registro.Plano_Contas_Id.ToString());
vDescricao = ViewBag.Registro.Descricao.ToString();
vTipo = ViewBag.Registro.Tipo.ToString();
}
catch
{
}
}
<form asp-controller="Transacao" asp-action="Registrar">
<input type="hidden" asp-for="Id" value="@vId" />
<div class="form-group">
<label>Data:</label>
<input type="date" class="form-control" asp-for="Data" value="@vData" />
<span asp-validation-for="Data" class="text-danger"></span>
</div>
Controller
[HttpGet]
public IActionResult Registrar(int? id)
{
if (id != null)
{
TransacaoModel objTransacao = new TransacaoModel(HttpContextAccessor);
ViewBag.Registro = objTransacao.CarregarRegistro(id);
}
ViewBag.ListaContas = new ContaModel(HttpContextAccessor).ListaConta();
ViewBag.ListaPlanoContas = new PlanoContaModel(HttpContextAccessor).ListaPlanoConta();
return View();
}
Модель
public TransacaoModel CarregarRegistro(int? id)
{
TransacaoModel item;
string id_usuario_logado = HttpContextAccessor.HttpContext.Session.GetString("IdUsuarioLogado");
string sql = "select t.Id, t.Data, t.Tipo, t.Valor, t.Descricao as historico , t.Conta_Id, c.Nome as conta, " +
" t.Plano_Contas_Id, p.Descricao as plano_conta from transacao as t inner join conta c " +
" on t.Conta_Id = c.Id inner join Plano_Contas as p " +
" on t.Plano_Contas_Id = p.Id " +
$" where t.Usuario_Id={id_usuario_logado} and t.Id='{id}'";
DAL objDAL = new DAL();
DataTable dt = objDAL.RetDataTable(sql);
item = new TransacaoModel();
item.Id = int.Parse(dt.Rows[0]["ID"].ToString());
item.Data = DateTime.Parse(dt.Rows[0]["Data"].ToString()).ToString("dd/mm/yyyy");
item.Descricao = dt.Rows[0]["historico"].ToString();
item.Valor = double.Parse(dt.Rows[0]["Valor"].ToString());
item.Conta_Id = int.Parse(dt.Rows[0]["Conta_Id"].ToString());
item.NomeConta = dt.Rows[0]["conta"].ToString();
item.Plano_Contas_Id = int.Parse(dt.Rows[0]["Plano_Contas_Id"].ToString());
item.DescricaoPlanoConta = dt.Rows[0]["plano_conta"].ToString();
item.Tipo = dt.Rows[0]["TIPO"].ToString();
return item;
}
Если этих данных недостаточно, просто дайте мне знать, что я делюсь больше.
Мой код здесь