剃刀中的下拉列表问题

时间:2014-02-12 07:06:14

标签: c# asp.net asp.net-mvc razor

大家好我有一个控制器

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

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

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

但这不起作用

2 个答案:

答案 0 :(得分:0)

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

查看

 @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" })

答案 1 :(得分:0)

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

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