问题描述
<div class="form-group">
<label asp-for="Price" class="control-label">Price</label>
<input asp-for="Price" class="form-control"/>
</div>
[DataType(DataType.Currency)]
[Column(TypeName = "money")]
public decimal Price { get; set; }
当我用逗号输入输入字段时,页面返回验证错误,
当我发布带有期间的价格时,价格将作为一个整数被接收。
例如,当我将价格设为7.00时,我的控制器收到700。
解决方法
nl-NL
文化使用逗号作为小数点分隔符。您可以使用此代码为每个请求覆盖当前区域性的数字格式
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
app.Use(async (context,next) =>
{
var currentThreadCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
currentThreadCulture.NumberFormat = NumberFormatInfo.InvariantInfo;
Thread.CurrentThread.CurrentCulture = currentThreadCulture;
Thread.CurrentThread.CurrentUICulture = currentThreadCulture;
await next();
});
...
}
,
带有周期的ASP Net Core十进制输入变成整数:-
您只需要将输入值转换为十进制即可。
可以通过更改:
实现至: