0

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

示例视图模型

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

        }

在视图中,我的下拉菜单被称为:

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

有没有可能的解决方法,所以下拉列表被初始化?

4

1 回答 1

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 会好得多。

您应该使用视图模型中的 List 在视图中构造 SelectList ...根据您的要求将 List<> 替换为更合适的内容。

于 2014-05-20T14:26:11.493 回答