初始化空视图模型

时间:2014-05-20 14:21:03

标签: c# asp.net-mvc-5 dropdownlistfor

我正在尝试初始化一个带有下拉属性的空视图模型,所以当涉及到控制器时,它不会给出关于下拉列表的错误。下面是我试图让它工作但是它跳过foreach循环的代码,因为模型在开始时是空的:

ExampleViewModel

public class ExampleViewModel
    {
    public ExampleViewModel()
    {

        ExampleViewModel = new ExampleViewModel();
    }


    public SelectList dropdown{ get; set; }
    public string dropdownvalue { get; set; }

}
}

控制器代码:

        List<ExampleViewModel > integration = new List<ExampleViewModel >();


        foreach (var item in ExampleViewModel )
        {
            item.dropdown= ApplicationService.GetDropdownlist(null);

        }

在View中,我的下拉列表被称为:

@Html.LabelFor(model => model.dropdown, new { @id = "rightlabel" })
<span>
    @Html.DropDownListFor(model => model.dropdownvalue, Model.dropdown)
    @Html.ValidationMessageFor(model => model.dropdown)
</span>

是否有可能的解决方法,因此下拉列表会被初始化?

1 个答案:

答案 0 :(得分:1)

您似乎正在初始化一个不存在的变量,而不是初始化您真正关心的属性。

public class ExampleViewModel
     {
         public ExampleViewModel()
         {
             this.dropdown = new List<string>(); 
             this.dropdownvalue = string.Empty;
         }

         public List<string> dropdown{ get; set; }
         public string dropdownvalue { get; set; }

      }
}

这将停止空引用异常。我也不会在视图模型中放置一个SelectList ...... List会好得多。

您应该使用视图模型中的列表在视图中构建SelectList ...替换List&lt;&gt;根据您的要求提供更合适的东西。