2013-05-08 254 views
0

我正在从事MVC3项目。从数据库的两列填充下拉列表

在我的控制器我已经有一个代码,从StockClass表中获取Descr列。之后,我用这个列表填充ViewBag以便从视图中检索它并填充下拉列表。

目前工作正常,但只显示Descr字段(显然)。我想要的是使用以下格式的两个字段(CodeDescr)填充下拉列表:“code - descr”。

我尝试了几种方法,但我无法找到正确编码@Html助手的方式。

在我的控制器......

var oc = dba.StockClass.OrderBy(q => q.Code).ToList(); 
ViewBag.OrderClass = new SelectList(oc, "StockClassId", "Descr"); 

在我看来....

@Html.DropDownList("StockClassID", (SelectList)ViewBag.OrderClass) 

你能帮帮我吗?

回答

3

我不相信有一个HTML助手,这将做到这一点给你,但你可以得到你以后是这样的:

var oc = dba.StockClass 
    .OrderBy(q => q.Code) 
    .ToDictionary(q => q.StockClassId, q => q.Code + " - " + q.Descr); 

ViewBag.OrderClass = new SelectList(oc, "Key", "Value"); 

这也有做的应用优势StockClassId,CodeDescr重构友好 - 如果您重命名这些属性,则无需更新此位代码即可进行编译。

+0

非常感谢你!它像一个魅力工作!你对重命名这些属性是正确的......非常感谢! – equisde 2013-05-08 13:01:08

+0

没问题,祝你好运! :) – 2013-05-08 13:17:04

相关问题