我有一个下拉列表,我希望它是可选的,但是,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");
}
和我的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; }
}
我希望TemplateVersionId
是可选的。
答案 0 :(得分:12)
将其更改为int?
以使其可以为空。
答案 1 :(得分:1)
当您创建Nullable项目时,它在表单
中变为可选项public class AddVersionViewModel
{
public double Number { get; set; }
public bool IsActive { get; set; }
public int? TemplateVersionId { get; set; }
public ICollection<Version> CurrentVersions { get; set; }
}