Asp.net mvc 2 在MVC2中设置文本框的属性和格式

Asp.net mvc 2 在MVC2中设置文本框的属性和格式,asp.net-mvc-2,Asp.net Mvc 2,我使用的是MVC2。我想格式化编辑记录时显示在文本框中的数据 我的文本框显示如下: <%: Html.TextBoxFor(m => m.AnnualIncome, new { @class = "textbox", maxlength = "50", size = "15" })%> m.AnnualIncome,新的{@class=“textbox”,maxlength=“50”,size=“15”})%> 我将如何格式化此文件?我尝试从下面添加字符串.Format,但

我使用的是MVC2。我想格式化编辑记录时显示在文本框中的数据

我的文本框显示如下:

<%: Html.TextBoxFor(m => m.AnnualIncome, new { @class = "textbox", maxlength = "50", size = "15" })%>
m.AnnualIncome,新的{@class=“textbox”,maxlength=“50”,size=“15”})%>
我将如何格式化此文件?我尝试从下面添加字符串.Format,但无效:

<%: Html.TextBoxFor(model => model.AnnualIncome, String.Format("{0:F}", Model.AnnualIncome)) %>
model.AnnualIncome,String.Format(“{0:F}”,model.AnnualIncome))%>
AnnualIncome是可为空的十进制类型

编辑:

我输入了一个千分位符,给我一个类似1000000的值,以查看结果

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0,0}")]
public Nullable<decimal> AnnualIncome { get; set; }
[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:0,0}”)]
公共可为空的AnnualIncome{get;set;}
以下是我对上述内容的HTML:

<%: Html.TextBoxFor(m => m.AnnualIncome, new { @class = "textbox", maxlength = "50", size = "15" })%>
m.AnnualIncome,新的{@class=“textbox”,maxlength=“50”,size=“15”})%>

这仍然显示1000000.00。我试图在填充视图时使其在文本框中显示1000000。

在属性上放置
DisplayFormatAttribute.DataFormatString
属性:

[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString = "{0:F}")]
public float AnnualIncome { get; set; };
那么你只要做:

<%: Html.EditorFor(m => m.AnnualIncome) %>

…或您喜欢的任何内容。

Html.EditorFor工作正常,但它没有使用我提供的样式。为什么EditorFor工作而不是TextBoxFor?
EditorFor
使用模型元数据
TextBoxFor
没有。我应该建议编辑。您试图保留的样式。EditorFor显示的文本框看起来像一个普通的HTML输入控件。它使用某种默认样式。我不使用这种样式,我有自己的样式应用于文本框。如何将我的样式应用于EditorFor创建的输入文本框?您可以添加一个CSS规则。我将补充答案。
input.editor-field {
    color: #781351;
}