Ajuda com cadastro de inputsas
17/06/2021
0
Bom dia!
Estou tentando fazer um projeto, de um demonstrativo contábil, e travei em uma questão.
Fiz um form, que possui 220 inputs, o que deixaria a tabela muito grande, se cada input fosse uma coluna, então optei por fazer um codigo da linha, e grava cada valor definido por um codigo que o define, e cada input na tabela se torna uma linha, não uma coluna, por exemplo:
codempresa - competencia - codconta(cod que define o input) - valor(input)
Cada valor tem a seu próprio codconta.
Problemas que estou tendo:
Não consigo formar mais uma linha para gravar no banco.
Modelo da forma que estou tentando fazer:
View:
<form asp-action="Receber" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="mx-5">
<div class="col">emp<input type="number" name="emp" value="" /></div>
<div class="col">mes<input type="number" name="mes" value="" /></div>
<div class="col">ano<input type="number" name="ano" value="" /></div>
<div class="row">
<div class="col-auto">
<table class="table-sm table-bordered">
<!--IMPOSTOS FEDERAIS E CONTRIBUIÇÕES | INÍCIO-->
<thead>
<tr>
<th scope="col" colspan="3">Impostos federais</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><input type="number" name="cnt12" value="12" /></th>
<td>IRRF Salário</td>
<td><input type="number" name="vl12" value="" /></td>
</tr>
</tbody>
</div>
</form>
Controller:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Receber(int mes, int ano, int cnt12, int emp, int vl12)
{
Demonstrativo valor = new();
int[] teste = new int[5] { cnt12, mes, ano, emp, vl12 };
valor.CodConta = teste[0];
valor.Mes = teste[1];
valor.Ano = teste[2];
valor.CodEmpresa = teste[3];
valor.Valor = teste[4];
_context.Demonstrativo.Add(valor);
_context.SaveChanges();
}
Isso funciona, porém não consigo fazer isso em varias linhas, tentei criar outra array recebendo os mesmos valores, e ele grava no banco apenas a primeira.
Gostaria de um auxilio, pois já pesquisei bastante e não achei nada que se aplica a essa situação.
Estou tentando fazer um projeto, de um demonstrativo contábil, e travei em uma questão.
Fiz um form, que possui 220 inputs, o que deixaria a tabela muito grande, se cada input fosse uma coluna, então optei por fazer um codigo da linha, e grava cada valor definido por um codigo que o define, e cada input na tabela se torna uma linha, não uma coluna, por exemplo:
codempresa - competencia - codconta(cod que define o input) - valor(input)
Cada valor tem a seu próprio codconta.
Problemas que estou tendo:
Não consigo formar mais uma linha para gravar no banco.
Modelo da forma que estou tentando fazer:
View:
<form asp-action="Receber" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="mx-5">
<div class="col">emp<input type="number" name="emp" value="" /></div>
<div class="col">mes<input type="number" name="mes" value="" /></div>
<div class="col">ano<input type="number" name="ano" value="" /></div>
<div class="row">
<div class="col-auto">
<table class="table-sm table-bordered">
<!--IMPOSTOS FEDERAIS E CONTRIBUIÇÕES | INÍCIO-->
<thead>
<tr>
<th scope="col" colspan="3">Impostos federais</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><input type="number" name="cnt12" value="12" /></th>
<td>IRRF Salário</td>
<td><input type="number" name="vl12" value="" /></td>
</tr>
</tbody>
</div>
</form>
Controller:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Receber(int mes, int ano, int cnt12, int emp, int vl12)
{
Demonstrativo valor = new();
int[] teste = new int[5] { cnt12, mes, ano, emp, vl12 };
valor.CodConta = teste[0];
valor.Mes = teste[1];
valor.Ano = teste[2];
valor.CodEmpresa = teste[3];
valor.Valor = teste[4];
_context.Demonstrativo.Add(valor);
_context.SaveChanges();
}
Isso funciona, porém não consigo fazer isso em varias linhas, tentei criar outra array recebendo os mesmos valores, e ele grava no banco apenas a primeira.
Gostaria de um auxilio, pois já pesquisei bastante e não achei nada que se aplica a essa situação.
Guilherme Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)