Asp.net mvc 4 Bool、DateTime和Int是必需的,但没有必需的属性?

Asp.net mvc 4 Bool、DateTime和Int是必需的,但没有必需的属性?,asp.net-mvc-4,mvc-editor-templates,Asp.net Mvc 4,Mvc Editor Templates,我使用的是Object.cshtml,如下所示,出于某种原因,像这样的普通int属性public int MyInt{get;set;}是必需的,即使它们缺少必需的属性,为什么呢?我的编辑器模板中是否缺少某些内容 @foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !ViewData.TemplateInfo.Visited(pm))) { if

我使用的是Object.cshtml,如下所示,出于某种原因,像这样的普通int属性
public int MyInt{get;set;}
是必需的,即使它们缺少必需的属性,为什么呢?我的编辑器模板中是否缺少某些内容

@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !ViewData.TemplateInfo.Visited(pm))) {
    if (prop.HideSurroundingHtml) {
        <text>@Html.Editor(prop.PropertyName)</text>
    } else {
        <div>
            <div class="editor-label">
                @if(prop.IsRequired) {
                    @Html.LabelFor(m => prop, @<em>(mandatory)</em>, prop.GetDisplayName())
                } else {
                    @Html.Label(prop.PropertyName)
                }
            </div>
            <div class="editor-field">
                @Html.Editor(prop.PropertyName)
            </div>
        </div>
    }
}
@foreach(ViewData.ModelMetadata.Properties.Where中的var prop(pm=>pm.ShowForEdit&!ViewData.TemplateInfo.visted(pm))){
if(项目隐藏周围TML){
@编辑器(prop.PropertyName)
}否则{
@如果(需要第I部分){
@LabelFor(m=>prop,@(必需),prop.GetDisplayName()
}否则{
@Html.Label(prop.PropertyName)
}
@编辑器(prop.PropertyName)
}
}

尝试将非必填字段更改为可空:

public int? MyInt { get;set; }
public DateTime? MyDateTime { get;set; }
public bool? MyBool { get;set; }