DropDownList显示整个对象而不是object属性

时间:2013-11-10 09:28:08

标签: c# asp.net-mvc html-select

我有DropDownList从我的数据库中读取fils并在我的DropDownList中显示这些文件。

当前的解决方案显示在我的DropDownListItem System.Web.Mvc.SelectList而不是我的Object属性上。我想在我的网页上包含我的对象的下拉列表(从数据库中读取)。

这是我的目标:

public class MyObject
{
    public int id { get; set; }
    public string fileName { get; set; }

    public string browser { get; set; }

    public string protocol { get; set; }

    public string family { get; set; }
}

我的控制器:

public ActionResult Index()
{
    List<MyObject> list = db.MyObjects.Where(x => x.family == "Web").ToList();
    ViewBag.Files = lList;
    return View();
}

Index.cshtml

  @Html.DropDownList("File",new SelectList(ViewBag.Files))

我想在DropDownList中看到的是我的protocol属性。

2 个答案:

答案 0 :(得分:0)

试试这个

public ActionResult Index()
{
    List<MyObject> list = db.MyObjects.Where(x => x.family == "Web").DistinctBy(x=> x.protocol).ToList();
    ViewBag.Files = new SelectList(list,"Id","protocol");
    return View();
}

答案 1 :(得分:0)

试试这样:

@Html.DropDownList("File", new SelectList(ViewBag.Files, "id", "fileName"))