值重置为零

时间:2018-07-30 13:46:11

标签: c# asp.net-core razor-pages

我正在通过邮寄进行插入,但是我的班级得到了零值。

输入值通过变量传递并正确显示,但在通过post进行操作时,其值为零。

最有趣的是,如果您在输入中键入内容,则值会正确显示。

<form method="post">
        <div class="col-sm-3">
            <label>SALDO</label>
            <div style="border:1px solid #bbb9b9; border-radius:3px;"></div>
            <br />
            <div class="form-group">
                <label asp-for="Caixas.ValorFinalDinheiro" class="control-label"></label>
                <input asp-for="Caixas.ValorFinalDinheiro" name="Caixas.ValorFinalDinheiro"  id="Caixas.ValorFinalDinheiro" class="form-control finalFundo"  disabled="disabled" />

            </div>
            <div class="form-group">
                <label asp-for="Caixas.ValorFinalCheque" class="control-label"></label>
                <input asp-for="Caixas.ValorFinalCheque" class="form-control finalFundo"  disabled="disabled"/>

            </div>
            <div class="form-group">
                <label asp-for="Caixas.ValorFinalBoleto" class="control-label"></label>
                <input asp-for="Caixas.ValorFinalBoleto" class="form-control finalFundo"  disabled="disabled" />

            </div>
            <div class="form-group">
                <label asp-for="Caixas.ValorFinalCartao" class="control-label"></label>
                <input asp-for="Caixas.ValorFinalCartao" class="form-control finalFundo"  disabled="disabled" />

            </div>
            <div class="form-group">
                <label asp-for="Caixas.ValorFinalDeposito" class="control-label"></label>
                <input asp-for="Caixas.ValorFinalDeposito" class="form-control finalFundo" disabled="disabled"  />

            </div>
            <div class="form-group">
                <label asp-for="Caixas.ValorFinal" class="control-label"></label>
                <input asp-for="Caixas.ValorFinal" class="form-control" style="background-color:#9FF781"   />

            </div>
        </div>
        <div class="col-sm-12">
            <div class="form-group">
                <input type="submit" value="Confirmar o Fechamento do Caixa" class="btn btn-primary btn-sm"  />
                <a asp-page="Index" class="btn btn-success btn-sm">Retorna ao Caixa</a>
            </div>
        </div>
    </form>

和控制器

[BindProperty]
public Caixas Caixas { get; set; }

public async Task<IActionResult> OnPostAsync()
{
    var C = _context.Caixas.Find(Caixas.Id);
    C.fechado = true;
    C.DataFinal = DateTime.Now;
    C.HoraFinal = DateTime.Now;
    C.FuncionarioFechamentoId = _userManager.GetUserId(HttpContext.User);
    C.ValorFinalDinheiro = Caixas.ValorFinalDinheiro;
    C.ValorFinalCheque = Caixas.ValorFinalCheque;
    C.ValorFinalBoleto = Caixas.ValorFinalBoleto;
    C.ValorFinalCartao = Caixas.ValorFinalCartao;
    C.ValorFinalDeposito = Caixas.ValorFinalDeposito;
    C.ValorFinal = Caixas.ValorFinal;

    C.ValorSaida = Caixas.ValorSaida;

    await _context.SaveChangesAsync();
    return RedirectToPage("./Index");
}

2 个答案:

答案 0 :(得分:2)

实际上,所有浏览器都不应提交禁用的输入。

跟随this

  

在此示例中,INPUT元素被禁用。因此,它不能   不会接收用户输入,也不会与表单一起提交其值。

<INPUT disabled name="fred" value="stone">

我不知道您为什么有这样的表格。但是要克服这种情况,您可以添加一个<input type="hidden">元素,其名称和值与禁用的输入相同。并在POST请求中发送值。

答案 1 :(得分:0)

尝试在方法之前使用数据注释“ HttpPost”。像这样:

[HttpPost]
public async Task<IActionResult> OnPostAsync()
{
  ...
}