我想知道如何将强类型视图价格字段转换为2位数说明符,例如我在我的数据库中有一个货币字段,例如将15转换为15.0000,我想在视图中显示15.00,下面是代码:
<%: Html.TextBoxFor(model =>model.Price, new { maxlength = "5", style = "width:40px;" })%>
我尝试了一些没有成功的事情:
<%: Html.TextBoxFor(model => String.Format("{0:n}"model.Price), new { maxlength = "5", style = "width:40px;" })%>
答案 0 :(得分:3)
您可以在模型上放置类似以下内容的属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:n}")]
如果您不想这样做,则需要使用“旧”样式文本框:
<%= Html.TextBox("Price", string.Format("{0:n}", Model.Price)) %>
答案 1 :(得分:2)
试试这个:
<%: Html.TextBoxFor(model => model.Price.ToString("0.00"), new { maxlength = "5", style = "width:40px;" })%>
更新
你也错过了原始语法中的一个逗号,这可能就是阻止它以这种方式工作的一切。应该是:
<%: Html.TextBoxFor(model => String.Format("{0:n}", model.Price), new { maxlength = "5", style = "width:40px;" })%>
此外,对于2位小数,请尝试这样:
<%: Html.TextBoxFor(model => String.Format("{0:0.00}", model.Price), new { maxlength = "5", style = "width:40px;" })%>
答案 2 :(得分:2)
您最好的选择是在视图模型上使用DataAnnotations显示格式属性。像这样:
[DisplayFormat(DataFormatString =“{0:n}”)]
然后使用Html.EditorFor(model =&gt; model.Price)来渲染输入。
答案 3 :(得分:0)
您是否尝试过使用mode.Price.ToString()
并在ToString方法中指定所需的格式字符串?
答案 4 :(得分:0)
这可能会有所帮助。
private DateTime hDay;
[DisplayName("Hire Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime HireDate
{
get
{
if (hDay == DateTime.MinValue)
{
return DateTime.Today;
}
else
return hDay;
}
set
{
if (value == DateTime.MinValue)
{
hDay = DateTime.Now;
}
}
}
OR
我们也可以这样使用
@Html.TextBoxFor(m => m.MktEnquiryDetail.CallbackDate, "{0:dd/MM/yyyy}")