我必须将小数显示为00.00。我有以下EditorTemplate
@model Decimal?
@if (Model.HasValue)
{
@Model.Value.ToString("00.00");
}
我必须在文本框和标签中显示小数。如何使用上述模板以所需格式显示以下内容。
@Html.TextBoxFor(m=>@item.Price)
@Html.LabelFor(m=>@item.Price)
答案 0 :(得分:3)
您可以在模型上使用[DisplayFormat]
属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:00.00}", NullDisplayText = "")]
public decimal? Price { get; set; }
然后显示:
@Html.DisplayFor(x => x.Price)
并编辑:
@Html.EditorFor(x => x.Price)
答案 1 :(得分:0)
在模板中,您可以使用
@Html.TextBox("", (Model.HasValue ? Model.Value.ToString("00.00") : String.Empty))
或
@if (Model.HasValue) {
@Model.Value.ToString("00.00");
@Html.TextBox("", Model.Value.ToString("00.00"))
}
然后在您的视图中使用
@Html.EditorFor(m => m.Price)%>
答案 2 :(得分:0)
创建一个 Views \ Shared \ EditorTemplates文件夹下的Decimal.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<decimal?>" %>
<%
Html.LabelFor(m => m);
Html.TextBox (ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty),
Model.HasValue? Model.Value.ToString(“00.00”):“00.00”, new {readonly =“readonly”}) %GT;
如果您只需要显示它,那么切换显示器编辑器(DisplayTemplates,DisplayFor等) readonly属性是使文本框为只读(不可编辑)