C# MVC3可选模型属性

C# MVC3可选模型属性,c#,asp.net,asp.net-mvc,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我有一个dropdownlist,我希望它是可选的,但是,ModelState.IsValid检查正在尝试验证属性。有没有办法告诉它该属性是可选的 这是我的密码: <h2>New Version</h2> @using (Html.BeginForm()) { <div>Version Number: @Html.TextBoxFor(m => m.Number)</div> <div>Enabled: @Htm

我有一个dropdownlist,我希望它是可选的,但是,
ModelState.IsValid
检查正在尝试验证属性。有没有办法告诉它该属性是可选的

这是我的密码:

<h2>New Version</h2>

@using (Html.BeginForm()) {
    <div>Version Number: @Html.TextBoxFor(m => m.Number)</div>
    <div>Enabled: @Html.CheckBoxFor(m => m.IsActive)</div>

    <div></div>

    <div>
        Template (optional): 
        @Html.DropDownListFor(m => m.TemplateVersionId, new SelectList(Model.CurrentVersions, "VersionId", "Number"),
            "-- Select Template --")
    </div>

    <input type="submit" value="Save" />
    @Html.ActionLink("Cancel", "Index");
}
新版本
@使用(Html.BeginForm()){
版本号:@Html.TextBoxFor(m=>m.Number)
已启用:@Html.CheckBoxFor(m=>m.IsActive)
模板(可选):
@Html.DropDownListFor(m=>m.TemplateVersionId,新选择列表(Model.CurrentVersions,“VersionId”,“Number”),
“--选择模板--”)
@ActionLink(“取消”、“索引”);
}
和我的ViewModel:

public class AddVersionViewModel
{
    public double Number { get; set; }
    public bool IsActive { get; set; }

    public int TemplateVersionId { get; set; }
    public ICollection<Version> CurrentVersions { get; set; }
}
public类AddVersionViewModel
{
公共双精度数{get;set;}
公共bool IsActive{get;set;}
public int TemplateVersionId{get;set;}
公共ICollection CurrentVersions{get;set;}
}

我希望
TemplateVersionId
是可选的。

将其更改为
int?
以使其可为空。

创建可为空的项时,它在表单中成为可选项

public class AddVersionViewModel
{
    public double Number { get; set; }
    public bool IsActive { get; set; }

    public int? TemplateVersionId { get; set; }
    public ICollection<Version> CurrentVersions { get; set; }
}
public类AddVersionViewModel
{
公共双精度数{get;set;}
公共bool IsActive{get;set;}
public int?TemplateVersionId{get;set;}
公共ICollection CurrentVersions{get;set;}
}