在我的数据库中,我存储了数据类型为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 => 1892
- 1,5426 => 1,5426
醇>
如您所见,我希望将所有0
作为小数位(仅在视图中显示时)切断。
请记住:我使用的是逗号而不是小数点。
修改
我的模特
public class Article
{
public decimal? Stock{ get; set; }
}
答案 0 :(得分:4)
G29
方法的string.Format
参数完全符合您的要求。
您可以在模型Stock
值上使用以下属性。
[DisplayFormat(DataFormatString = "{0:G29}", ApplyFormatInEditMode = true)]
或者你可以使用@Chris提到的overload。
@Html.TextBoxFor(model => model.Stock, "{0:G29}", new { id = "Stock", @class = "k-textbox" })
答案 1 :(得分:2)
您可以像这样使用Name
:
Db
或者使用字符串插值:
CellTemplate
修改强>
保存后您无法在{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
答案 2 :(得分:1)
有一个overload of TextBoxFor
,它使用format
参数来格式化文本。
这将允许您以任何方式格式化您的号码。