Asp验证十进制未正确绑定

时间:2018-05-25 09:08:31

标签: asp.net-mvc validation asp.net-core-mvc asp.net-core-2.0

我有一个asp验证问题。 我有一个十进制字段,我希望介于0.00和1.00之间。

这是我的模型

public class Intent
{
    public Guid Id { get; set; }
    public Language Language_ { get; set; }
    public Boolean Active { get; set; }
    [Range(0.00, 1.00)]
    public decimal Tolerance { get; set; }
    public LuisApp LuisAppFr_ { get; set; }
    public LuisApp LuisAppEn_ { get; set; }
    public LuisApp LuisAppNl_ { get; set; }
    public string UrlImage { get; set; }
}

以下是帖子方法的签名:

        public async Task<IActionResult> Create([Bind("Id,Active,Tolerance,UrlImage,Language_,Language_.TextEn,Language_.TextFr,Language_.TextNl")] Intent intent)

以下是创建视图的一部分:

<form asp-action="Create">
    <div asp-validation-summary="All" class="text-danger"></div>
    <div class="form-group">
        <div class="checkbox">
            <label>
                <input asp-for="Active" /> @Html.DisplayNameFor(model => model.Active)
            </label>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="Tolerance" class="control-label"></label>
        <input asp-for="@Model.Tolerance" class="form-control"/>
        <span asp-validation-for="Tolerance" class="text-danger"></span>
    </div>
    ...
    <div class="form-group">
        <input type="submit" value="Create" class="btn btn-default" />
    </div>
</form>

Here is an image showing the value of my Tolerance field when it gets to the controller

And here is an image of my network request

Error Message I get

绑定似乎在前端好,但不在后端。 有谁知道我的错误是什么?

感谢您的回答。 对不起,如果是重新发布。

1 个答案:

答案 0 :(得分:0)

我在startup.cs中添加了这个问题解决了我的问题:

app.UseRequestLocalization(new RequestLocalizationOptions
        {
            DefaultRequestCulture = new RequestCulture("en-US")
        });