首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心双重验证点不起作用

ASP.NET核心双重验证点不起作用
EN

Stack Overflow用户
提问于 2022-07-21 09:06:12
回答 1查看 129关注 0票数 0

在我的验证中,我的输入是双倍的,但是当我输入例如"3.14“时,我会收到错误消息:”'3.14‘值对于加油无效“,如果我用逗号(,)它的工作。我想同时使用点和逗号作为输入。我该怎么办?我的全球化是胡胡(匈牙利,基本分隔符是逗号)。

编辑-代码

代码语言:javascript
复制
[Display(Name = "Tankolás")]
    [DisplayFormat(DataFormatString = "{0} l", ApplyFormatInEditMode = false)]
    [FuelValidation]
    public double? Fueling { get; set; }

HTML

代码语言:javascript
复制
<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>

审定:

代码语言:javascript
复制
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;
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-22 02:39:21

也许您可以考虑使用一段JavaScript代码来帮助进行验证。如果您只使用自定义验证,则在通过3.14时将获得null,因此无法继续进行验证。

在视图中使用JS判断传递的参数,如果为3.14,将其更改为3,14,因为传递将解决这个问题。

下面是我的测试代码,您可以参考它:

代码语言:javascript
复制
<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时:

处理后:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73063465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档