0

我正在研究 MVC3 项目。

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

目前工作正常,但只显示Descr字段(显然)。我想要的是用这种格式的两个字段(CodeDescr)填充下拉列表:“代码 - 描述”。

我尝试了几种方法,但我找不到正确编码 @Html 帮助程序的方法。

在我的控制器...

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

在我看来....

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

请你帮助我好吗?

4

1 回答 1

3

我不相信有一个 HTML Helper 可以为你做到这一点,但你可以像这样得到你想要的:

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您将无法在不更新这段代码以匹配的情况下进行编译。

于 2013-05-08T12:00:47.597 回答