ASP.Net货币格式小数Ajax帖子模型序列化

时间:2018-10-15 07:24:21

标签: jquery asp.net ajax currency-formatting

我正在存储具有十进制数据类型的货币。

public decimal money { get; set; }

我想用“£”号显示它。所以我正在使用

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]

这很好。该值显示在表中,并使用jQuery进行序列化。

@Html.EditorFor(model => model.money, "Currency")

信息被序列化后,我将发布一个ajax帖子以将信息返回给我的ActionResult。

Data = $('#container :input').serialize();

public PartialViewResult EditedValue(MoneyModel viewModel)
{
        return PartialView("_MoneyView", viewModel);
}

此MoneyModel对象包含十进制货币。问题是,货币在视图中转换为字符串,并且在序列化时仍保留为字符串。在MoneyModel中不能将其转换为小数。

我应该如何解决此问题?我想保留格式化后的货币“£1,000”中的“£”和“,”,但是我不想在ConverModel中使用十进制转换货币->字符串货币。

1 个答案:

答案 0 :(得分:0)

只需发送输入值,如下所示:

$.ajax({
  type: 'POST',
  contentType: "application/json; charset=utf-8",
  url: 'yoururl',
  data: {val: $('#container :input').val()},
  success: function (data) {  
     // do stuff  
  },
});