如何在ASP.NetDropDownList中显示两个字符串SelectList dataTextField?

时间:2010-10-28 13:01:23

标签: asp.net-mvc drop-down-menu selectlist

这是我在ASP.Net中的DropDownList:

<%: Html.DropDownListFor(x => x.CompanyUserFilterId, new SelectList(Model.CompanyUsers, "Id", "FirstName", Model.CompanyUserFilterId)) %>

我想列出DropDownList中的所有CompanyUsers并显示其FirstName和LastName属性。 CompanyUsers是一个IEnumerable属性。上面的代码工作,只显示FirstName属性。是否可以同时显示?

2 个答案:

答案 0 :(得分:1)

您不必将完整的客户数据作为模型传递,而是必须提供包含连接字段的数据投影。

您尚未提供控制器实现,但您可能希望执行以下操作:

var data = from c in DataContext select new CustomerData() { Id = c.Id, Name = c.FirstName + " " + c.LastName };

return View(data);

..其中CustomerData是一个简单的POCO,上面有Id和Name属性。然后更改您的视图以使用IEnumerable&lt; CustomerData&gt;和您的下拉列表代码使用投影模型中的“名称”属性,而不是您最初使用的FirstName属性。

希望您可以根据自己的具体情况进行调整。

答案 1 :(得分:0)

我要补充一点,MvcContrib的下拉列表比默认列表更好,我会考虑尽可能使用该库。