表单验证 - 字段X必须是数字

时间:2018-04-29 19:50:18

标签: validation asp.net-core

在我的viewmodel中使用十进制字段时,我遇到了asp.net核心的表单验证问题,其中输入的值接收带逗号的数字但是在提交时它不允许它。< / p>

视图模型:

public class MyViewModel
{
    public decimal Price { get; set; }
}

Razor页面:

<div class="form-group row">
    <label asp-for="Price" req-asterisk="true" class="col-md-3 col-lg-2 col-form-label"></label>
    <div class="col-md-9 col-lg-10">
         <input asp-for="Price" class="form-control" rows="4" />
        <span asp-validation-for="Price" class="text-danger"></span>
    </div>
</div>

因此,如果例如Price属性需要4000,则输入需要4000,00,如果我点击提交,则显示“字段价格必须是数字。”

1 个答案:

答案 0 :(得分:0)

考虑到您的prices = [] with open(...) as infile: for line in infile.readlines() price = line.split('#')[-1] prices.append(float(price)) result = sum(prices) 字段需要包含该值,您需要使用字符串来访问您的值。以下是使用带有一些内存保存选项的字符串属性可以执行的操作示例:

Price

您现在可以将输入映射到public class MyViewModel { private string _priceDisplay; [DataType(DataType.Currency)] public string PriceDisplay { get => _priceDisplay ?? _price.ToString(); set => _priceDisplay = value; } private decimal? _price; public decimal Price { get => _price ?? decimal.Parse(PriceDisplay); set => _price = value; } }