剃须刀中的下拉列表问题



大家好,我有一个控制器

  public ActionResult Search(FormCollection collection)
    {
        ....
        var column = new Models.ColumnMapping("CTR");
        ViewData["ColoumName"] = column;
        var search = new Models.Search(columnname,searchvalue);
        return View(search);
    }

我的视图数据包含以下模型属性值。

public class Column {
    public string ColumnName { get; set; }
    public DataTypes DataType { get; set; }
   }

我必须为列名称创建一个下拉列表(所有数据都包含在 VIewData 中),我的视图就像

     @Html.DropDownListFor("clname", ViewData["ColoumName"] as IEnumerable<AML.Web.Models.Column>, "ColumnName", "ColumnName"))

但这不起作用

尝试这样,这只是一个例子。

视图

 @Html.DropDownList("CustomerId", (SelectList)ViewBag.CustomerNameID, "--Select--")

控制器

 public ActionResult CustomerInfo()
 {
    ViewBag.CustomerNameID = new SelectList(new[]
    {
     new {ID="1",Name="name1"},
     new{ID="2",Name="name2"},
     new{ID="3",Name="name3"},
     },"ID", "Name");
       return View();
 }

public Class ViewModel {
   public int CustomerId { get; set; }
}

如果你必须使用@Html.DropDownListFor那么它应该像这样@Html.DropDownListFor(m => m.CustomerId ,(List<SelectList>)ViewBag.CustomerNameID,"-- Select --", new { @class = "input-block-level" })

而不是 DropDownListFor 尝试使用 SelectList() 进行 DropDownList。

@Html.DropDownList("clname", 
new SelectList((IEnumerable) ViewData["ColoumName"], "Id", "ColoumName"))

最新更新