在我的数据库中,我存储了数据类型为decimal的字段。我在ASP.NET应用程序中使用完全相同的(decimal)数据类型。

这是在我的视图内部,以便显示值。

@Html.TextBoxFor(model => model.Stock, new { id = "Stock", @class = "k-textbox" })


这很简单。我面临的唯一问题是,默认情况下,在我的视图中,数据以4个小数位显示。

我为您提供一些有关其外观和外观的示例:


  
  1,0000 => 1
  1,2000 => 1,2
  1,4300 => 1,43
  1,8920 => 1,892
  1,5426 => 1,5426
  


如您所见,我想将所有0截断为小数位(仅在视图中显示时)。

记住:我使用逗号而不是小数点。

编辑:

我的模特

public class Article
{
    public decimal? Stock{ get; set; }
}

最佳答案

您可以这样使用{0:G29}

@{
    string temp = string.Format("{0:G29}", decimal.Parse(Model.Stock.ToString()));
    @Html.TextBoxFor(model => temp)
}


或使用字符串插值:

@{
    string temp = $"{decimal.Parse(Model.Stock.ToString()):G29}";
    @Html.TextBoxFor(model => temp)
}


编辑:
保存后无法在Controller中获取值的原因是,模型绑定程序找不到名称为temp的属性。您可以使用TextBox代替TextBoxFor来解决此问题,如下所示:

string temp = $"{decimal.Parse(Model.Stock.ToString()):G29}";
@Html.TextBox("Stock" , temp)


或者,如果您仍然想使用TextBoxFor,则可以将temp变量重命名为Stock

string Stock = string.Format("{0:G29}", decimal.Parse(Model.Stock.ToString()));
@Html.TextBoxFor(model => Stock)

07-28 10:03