【发布时间】:2014-12-10 19:07:23
【问题描述】:
我有一个非常简单的 EditorTemplate 用于货币字段,如下所示:
@model Decimal?
<div class="input-group">
<span class="input-group-addon fa fa-usd"></span>
@Html.TextBox("", Model.ToString("N2"), new Dictionary<string, object>
{
{"class", "form-control"},
{"data-type", "Currency"}
})
</div>
不知何故,当使用 EditorFor 调用此模板时,它获得了必需和数字类型的不显眼属性,而我实际上没有在任何地方指定模型中的必需属性:
public class SampleViewModel
{
[DisplayName("Amount Raised")]
public decimal AmountRaised { get; set; }
}
.cshtml
@Html.EditorFor(model => model.AmountRaised)
HTML 结果:
<input class="form-control
data-type="Currency"
data-val="true"
data-val-number="The field Amount Raised must be a number."
data-val-required="The Amount Raised field is required."
id="AmountRaised"
name="AmountRaised"
type="text"
value=""
aria-required="true"
aria-describedby="AmountRaised-error">
将不应该的字段标记为必填项显然是为了防止表单提交在它们应该是有效表单时发生。
我是否需要设置或更改关于 EditorTemplates 的某些内容,以确保在没有我要求的情况下不会发生这种情况?
【问题讨论】:
标签: jquery unobtrusive-validation mvc-editor-templates asp.net-mvc-viewmodel