8

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

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

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

没有具有键“父”的“IEnumerable”类型的 ViewData 项。

我该如何解决?谢谢。

4

4 回答 4

20

您可以像这样构建一个空的 DropDownList:

@Html.DropDownList("parent", Enumerable.Empty<SelectListItem>(), "--Select Parent--")

参考:为 Cascade Sub-List 构建一个空的 MVC DropdownListFor

于 2015-11-01T04:43:20.753 回答
7

在上面的示例中添加 html 属性:

    @Html.DropDownList("Idparent", Enumerable.Empty<SelectListItem>(), "Select one...", new {@class="form-control"})                 
于 2017-05-22T19:22:01.567 回答
5

您可以简单地在视图中创建一个 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
}

或者parent在您用于模型绑定的 ViewModel 中有一个属性。

public class CreateProject
{
  public string parent { set;get;}
  public string ProjectName { set;get;}
}

并在您的操作方法中。

[HttpPost]
public ActionResult Create(CreateProject model)
{

  // check model.parent value.
}
于 2013-03-26T15:04:00.103 回答
0

你可以在你的控制器中做这样的事情来构建一个空的下拉列表

    ViewBag.ClassID = new SelectList(db.Classes.Where(c => c.ClassID == 0)  , "ClassID", "ClassName").ToList();
于 2014-05-12T18:59:52.917 回答