ASP.NET CORE 中从视图表单到模型属性绑定双值的问题

问题描述 投票:0回答:1

我有一个小问题。在 ASP.NET CORE 中的表单视图中,我想输入带小数点的双精度值(捷克语中带点),但它不想采用任何一个(对于点:值“1.5”对于...无效对于逗号:字段 .... 必须是数字。)该值不想绑定到 double 属性(十进制也有同样的问题)。一定有一些基本的东西我忽略了。

我的控制器:

    [HttpPost]
    [ValidateAntiForgeryToken]
                                                                                            public IActionResult Create([Bind("Id,Name,Type,ApiId,Amount,InvestedMoney")] CommodityDto     commodity)
        {
            if (ModelState.IsValid)
            {
                portfolioCommodityManager.Add(commodity);
                return RedirectToAction(nameof(Index));
            }
            return View(commodity);
        }

我的财产:

    public double Amount { get; set; }

我的看法:

    <label asp-for="Amount" class="control-label fw-bold"></label>
    <input asp-for="Amount" class="form-control" />
    <span asp-validation-for="Amount" class="text-danger"></span>

这不起作用:

    services.Configure<RequestLocalizationOptions>(options =>
    {
        options.DefaultRequestCulture = new RequestCulture("cs-CZ");
    });
    [DisplayFormat(DataFormatString = "{0:0.0}", ApplyFormatInEditMode = true)]
    public double Amount { get; set; }
c# asp.net model-binding cultureinfo model-validation
1个回答
0
投票

您需要将此添加到您的

Program.cs

var supportedCultures = new[] { new CultureInfo("cs-CZ") };
app.UseRequestLocalization(new RequestLocalizationOptions
{
    DefaultRequestCulture = new RequestCulture("cs-CZ"),
    SupportedCultures = supportedCultures,
    SupportedUICultures = supportedCultures
});

请注意,这将禁用其他文化,例如

en-US
,因此可能也想添加它。

© www.soinside.com 2019 - 2024. All rights reserved.