MVVM从服务器到客户端未正确传输数字数据

时间:2016-12-06 13:17:19

标签: c# html5 asp.net-mvc-4

在我的asp.net mvc4应用程序中我使用MVVM和ajax(使用json数据类型)将数值(在德语数字小数点分隔符中:示例17,3)从视图(clientside)传输到服务器。我通过查看相应的sql数据库表字段中的条目来检查结果。数值正确存储(17,3)。到现在为止还挺好。 当我再次将值检索到视图中时,将显示英文小数点分隔符(17.3)。将此条目保存到服务器会导致sql数据库表中的NULL条目。 当我在视图中手动输入值17.3并将条目保存到服务器时,这也会导致sql数据库表中的NULL条目。

在模型和viewmodel中,数字条目的属性定义为double。在视图中我使用@ Html.TextBoxFor(....)

是否有任何建议导致此问题以及如何解决此问题?

感谢和问候,Manu

2 个答案:

答案 0 :(得分:1)

DAL /传输层中的所有值都应使用subprojects来传输和存储数据。

当您显示值时,请引入相应的CultureInfo.InvariantCulture以转换为特定于文化的数据呈现。

答案 1 :(得分:1)

尝试将数据库的输出格式化为德国文化。样本:

var yourValue = 20.3;

var cultureInfo = new CultureInfo("de-DE");

var formattedValue = yourValue.ToString("F1", cultureInfo);

//formattedValue => 20,3;

编辑1:

根据您对问题的编辑,我提出以下建议:

您可以使用

@{var formated = String.Format("{0:0.0}", yourValue);}
@Html.TextBoxFor(m => yourValue, formated, new { id = "yourId"})