大家好,我有一个控制器
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"))