Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Razor Asp.net刷新时丢失数字格式_Razor_Asp.net Core - Fatal编程技术网

Razor Asp.net刷新时丢失数字格式

Razor Asp.net刷新时丢失数字格式,razor,asp.net-core,Razor,Asp.net Core,我有一个简单的asp.net core 2.0 mvc应用程序。 在数据模型中,我有一个十进制数,我使用数据注释将其格式化为2个十进制数: [DisplayFormat(DataFormatString = "N2")] public decimal MyValue { get; set; } 模型由控制器传递到视图,并使用以下代码显示在视图中: @model MyModel <p>@Model.MyValue</p> @model-MyModel @Model.

我有一个简单的asp.net core 2.0 mvc应用程序。 在数据模型中,我有一个十进制数,我使用数据注释将其格式化为2个十进制数:

[DisplayFormat(DataFormatString = "N2")]
public decimal MyValue { get; set; }
模型由控制器传递到视图,并使用以下代码显示在视图中:

 @model MyModel
 <p>@Model.MyValue</p>
@model-MyModel
@Model.MyValue

这很好,当我最初浏览页面时,该值以2位小数显示。但当我在浏览器中点击“刷新”时,只显示一个小数点

在我的PC上进行测试时,以及在Azure上运行Chrome或Edge浏览器时,我都会得到相同的行为

有趣的是,如果我查看页面源代码,HTML中有两个小数


这里我做错了什么?

如果源代码中有2个小数,那么显示器上也会有2个小数(除非CSS对其做了一些处理)。我们需要看到这一点,我认为,从表面上看,这听起来是不可能的。在构建复制和共享的小型解决方案时,我意识到格式根本不起作用。其他的东西正在做这个初始格式。在空白项目中,在视图中没有格式化数字。我必须在视图中使用格式来获得两个小数:@($“{Model.MyValue:N2}”)。因此,dataannotation格式在视图中不起作用。也许我需要开始一个新的问题?如果你使用上面的代码,格式将不起作用。您需要使用
@Html.DisplayFor(m=>m.MyValue)
我认为这在asp.net核心中不再必要。您可能会对视图组件感到困惑?上面的代码实际上只是对值执行一个
ToString()
,并将其抛出到客户端-将忽略
DisplayFormat
属性。