加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – TextBoxFor decimal

发布时间:2020-12-15 23:39:52 所属栏目:百科 来源:网络整理
导读:在我的数据库中,我存储了数据类型为decimal的字段.我在ASP.NET应用程序中使用完全相同(十进制)的数据类型. 这是在我的视图中,以显示值. @Html.TextBoxFor(model = model.Stock,new { id = "Stock",@class = "k-textbox" }) 这非常直截了当.我面临的唯一问题
在我的数据库中,我存储了数据类型为decimal的字段.我在ASP.NET应用程序中使用完全相同(十进制)的数据类型.

这是在我的视图中,以显示值.

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

这非常直截了当.我面临的唯一问题是默认情况下,在我的视图中,数据显示为4位小数.

我举几个例子说明它的外观和外观:

  1. 1,0000 => 1
  2. 1,2000 => 1,2
  3. 1,4300 => 1,43
  4. 1,8920 => 1,892
  5. 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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读