在我的验证中,我的输入是双倍的,但是当我输入例如"3.14“时,我会收到错误消息:”'3.14‘值对于加油无效“,如果我用逗号(,)它的工作。我想同时使用点和逗号作为输入。我该怎么办?我的全球化是胡胡(匈牙利,基本分隔符是逗号)。
编辑-代码
[Display(Name = "Tankolás")]
[DisplayFormat(DataFormatString = "{0} l", ApplyFormatInEditMode = false)]
[FuelValidation]
public double? Fueling { get; set; }HTML
<div class="form-group">
<label asp-for="Fueling" class="control-label"></label>
<input asp-for="Fueling" class="form-control" placeholder="Tankolás" />
<span asp-validation-for="Fueling" class="text-danger"></span>
</div>审定:
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var record = (RoadRecord)validationContext.ObjectInstance;
if (value != null)
{
value = double.Parse(value.ToString(), new CultureInfo("hu-HU"));
if (!((double)value <= 0))
{
return ValidationResult.Success;
}
else
{
return new ValidationResult("Legyen nagyobb mint 0");
}
}
else
{
return ValidationResult.Success;
}
}发布于 2022-07-22 02:39:21
也许您可以考虑使用一段JavaScript代码来帮助进行验证。如果您只使用自定义验证,则在通过3.14时将获得null,因此无法继续进行验证。
在视图中使用JS判断传递的参数,如果为3.14,将其更改为3,14,因为传递将解决这个问题。
下面是我的测试代码,您可以参考它:
<form asp-action="Index">
<div class="form-group">
<label asp-for="Fueling" class="control-label"></label>
<input id="Fueling" asp-for="Fueling" class="form-control" placeholder="Tankolás" />
<span asp-validation-for="Fueling" class="text-danger"></span>
</div>
<div class="form-group">
<button onclick="Test()" class="btn btn-primary">Submit</button>
</div>
</form>
<script>
function Test()
{
var param = $("#Fueling").val();
if (param.indexOf(".") != -1)
{
param = param.replace(".",",");
}
$("#Fueling").val(param);
}
</script>测试结果:
当我进入3,14:


当我进入3.14时:

处理后:


https://stackoverflow.com/questions/73063465
复制相似问题