我想创建一个只有默认值的空下拉列表。我使用以下代码:
@Html.DropDownList("parent","--Select Parent--")
但是在运行时我看到了这个错误:
没有类型为'IEnumerable'的ViewData项 有关键'父母'。
我该如何解决? 感谢。
答案 0 :(得分:14)
您可以构建一个空的DropDownList,如下所示:
@Html.DropDownList("parent", Enumerable.Empty<SelectListItem>(), "--Select Parent--")
参考:Build an empty MVC DropdownListFor for a Cascade Sub-List
答案 1 :(得分:4)
您只需在视图中创建一个HTML Select选项即可。
<select id="parent" name="parent">
<option value="">Select parent </option>
</select>
编辑: 根据评论。
提交表单时,您可以通过使用parent
名称
[HttpPost]
public ActionResult Create(string parent,string otherParameterName)
{
//read and save and return / redirect
}
OR 在您的ViewModel中有一个parent
属性,用于模型绑定。
public class CreateProject
{
public string parent { set;get;}
public string ProjectName { set;get;}
}
并在你的行动方法中。
[HttpPost]
public ActionResult Create(CreateProject model)
{
// check model.parent value.
}
答案 2 :(得分:4)
将html属性添加到上面的示例中:
@Html.DropDownList("Idparent", Enumerable.Empty<SelectListItem>(), "Select one...", new {@class="form-control"})
答案 3 :(得分:0)
您可以在控制器中执行类似的操作来构建空的下拉列表
ViewBag.ClassID = new SelectList(db.Classes.Where(c => c.ClassID == 0) , "ClassID", "ClassName").ToList();