MVC不会接受带逗号的小数(,),但默认情况下以逗号显示

时间:2019-09-24 11:13:31

标签: c# asp.net-core-mvc razor-pages

首先,我对mvc的工作原理几乎不了解,而我的大部分代码是由Visual Studio生成的。我什至不知道该去哪里解决这个问题。

因此,我创建了一个包含'price'(decimal(5,2))作为字段的数据库。查看数据库时,价格字段以0,00格式显示。该数据库有一条记录,价格值为5,25。然后,我让vis studio根据此数据库(然后是带有视图的控制器)生成模型。 在大多数情况下,它都有效;我可以通过视图插入一条新记录,并将其存储在数据库中。

问题出在小数点后。当我进入默认的“创建”视图时,用于输入价格的文本字段将从默认值0开始。然后,该文本字段立即显示红色警告文本“字段价格必须为数字”。如果输入不带小数的数字,则插入记录不会出现问题。如果输入带逗号的数字,则会收到上述警告。如果我输入的数字格式为0.00(例如1.25),我不会收到警告,可以提交,但是输入的数字将为0。

默认的“编辑”视图中存在类似的问题。文本字段全部使用所选记录(要编辑的记录)中的数据自动填充,但是价格字段以0,00格式显示,我得到与上述相同的警告。 在默认的“索引”视图中显示记录时,价格为5,25的记录正确显示为0,00格式。

我对这两种格式的附件都为零,我只想保持一致性,并且能够输入带小数的数字。 我的一些代码:

编辑/创建视图中的输入(两者相同):

<div class="form-group">
    <h4>
        <strong>Price</strong>
    </h4>
    <input asp-for="ItemPrice" class="form-control" />
    <span asp-validation-for="ItemPrice" class="text-danger"></span>
</div>

模型中价格字段的声明:

public decimal ItemPrice { get; set; }

1 个答案:

答案 0 :(得分:0)

我有一个项目,那个价格问题也发生在我身上。

问题是,您是否要显示类似1,234.56或1234,56的价格。

如果您想要像第一种格式的节目,我建议使用jQuery http://plugin price-format.github.io/Jquery-Price-Format /

如果要以第二种格式显示,可以在JavaScript中创建一个方法并将。(逗号)替换为。(点)。