2011-09-22 70 views
3

我有一個下拉列表,我想是可選的,但是,ModelState.IsValid檢查試圖驗證屬性。有沒有辦法告訴它該屬性是可選的?MVC3可選模型屬性

這裏是我的代碼:

<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"); 
} 

和我的視圖模型:

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是可選的。

回答

12

將其更改爲int?以使其可爲空。

+0

哈哈感謝..我的一部分愚蠢的疏忽可選。 – shuniar

1

當你創建可空的東西都變成形式

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

    public int? TemplateVersionId { get; set; } 
    public ICollection<Version> CurrentVersions { get; set; } 
}