c# - 使用十进制值时 ASP.NET 模型绑定中断
问题描述
我有以下情况。我有一个发布到控制器的表格。当我在输入时输入一个非十进制数字时,一切正常ValorKilometro
。我可以在控制器上完美地得到模型等等。问题是,当我输入十进制值时,该ValorKilometro
属性始终设置为 0。为什么会这样?这是代码:
<form name="theForm" action="" style="margin: 0 auto; width: 80%;" method="post" onsubmit="return onFormSubmit();">
...
<div class="form-group">
<label for="usr">Valor de Kilometro:</label>
<input type="number" name="ValorKilometro" min="0" step="any" class="form-control" value="@Model.ValorKilometro">
</div>
<button type="submit" id="boton" class="btn btn-success">Guardar</button>
</form>
模型:
public class ConfiguracionModel
{
public Guid EmpresaGuid { get; set; }
public bool MaximoHabilitado { get; set; }
public int MontoMaximo { get; set; }
public Guid Moneda { get; set; }
public Double ValorKilometro { get; set; }
}
控制器:
[Authorize, AdminAuthorization]
[HttpPost]
public ActionResult Configuracion(ConfiguracionModel configuracion)
{
configuracion.EmpresaGuid = SQL.GetEmpresaGuid(User.Identity.Name);
SQL.ModificarConfiguracion(configuracion);
TempData["msg"] = "<script>alert('Los cambios fueron guardados correctamente!.');</script>";
return View(configuracion);
}
我希望有人可以帮助我解决这个问题。谢谢。
解决方案
您是否尝试过使用@Html.TextBoxFor
助手?
@model ConfiguracionModel // <-- obviously you need to bind your View to your model
@Html.TextBoxFor(m => m.ValorKilometro, "{0:n2}", new {
@class = "form-control",
@type = "number",
@min = "0" })
您还可以将验证约束添加到模型中:
public class ConfiguracionModel
{
public Guid EmpresaGuid { get; set; }
public bool MaximoHabilitado { get; set; }
public int MontoMaximo { get; set; }
public Guid Moneda { get; set; }
[Range(0.0, double.MaxValue)]
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public Double ValorKilometro { get; set; }
}
请注意,{0:n2}
表示 2 位小数。
推荐阅读
- imagemin - imagemin - 返回空结果数组
- python - 如何从彼此中减去日期(python)
- c# - 如何使用 C# 遍历当前为字符串的数组并在我的 ASP.NET Core 应用程序中添加其他值?
- python - 在满足特定条件之前,如何对数据框中的值进行滚动累积?
- html - 将标签值从 HTML 传递到 TS
- azure - 天蓝色表单识别器服务 - docker-compose 问题
- python - 随机分布多个元素,但加权到一个列表中,该列表应该只包含整数
- php - PHP - 通过 foreach 循环继承
- python - setup.py 中的 Python 可重用包
- python - Pandas to_datetime 减速脚本