如何使用默认值创建一个空的下拉列表?

时间:2013-03-26 14:57:28

标签: asp.net-mvc drop-down-menu

我想创建一个只有默认值的空下拉列表。我使用以下代码:

@Html.DropDownList("parent","--Select Parent--")

但是在运行时我看到了这个错误:

  

没有类型为'IEnumerable'的ViewData项   有关键'父母'。

我该如何解决? 感谢。

4 个答案:

答案 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();