如何指定要在下拉列表中显示的列?

时间:2012-05-30 16:59:17

标签: asp.net-mvc

我有一个带有计算列的数据库表。计算列将两个名称(第一个和最后一个)合并为一个显示名称。在下面的代码中,我想指定计算列的值,名为DisplayName。我该怎么做呢?谢谢!

仅供参考,这是MVC Beta 4。

<div class="editor-label">
    @Html.LabelFor(model => model.PdId, "Pd")
</div>
<div class="editor-field">
    @Html.DropDownList("PdId", String.Empty)
    @Html.ValidationMessageFor(model => model.PdId)
</div>

3 个答案:

答案 0 :(得分:1)

使用视图模型和强类型视图以及DropDownListFor帮助程序。看不到你的代码,所以这是一个未经测试的伪造的:

public class MyViewModel
{
    public int PdId { get; set; }
    public IEnumerable<SelectListItem> Names { get; set; } 
}

从控制器填充视图模型

public ActionResult VIewName(?)
{
    var people =  // query    
    var model = new MyViewModel
    {
       PdId = people.nameId,
       FullNames = people.Select(x => new SelectListItem
        {
             Value = x.nameId.ToString(),
             Text = x.FirstName + " " + x.LastName
        })
    };
    return View(model);
}

在视图中使用强类型DropDownListFor帮助程序

@model MyViewModel

@Html.DropDownListFor(
    x => x. PdId,
    Model. FullNames
)

答案 1 :(得分:0)

<div class="editor-label">
    @Html.LabelFor(model => model.PdId, "Pd")
</div>
<div class="editor-field">
    @Html.DropDownListFor(model => model.PdId, Model.DisplayName)
    @Html.ValidationMessageFor(model => model.PdId)
</div>

答案 2 :(得分:0)

只要列是实际字段,当您在DDL中使用DISTINCT进行SELECT时连接到数据库时,它应该是一个选项。

如果它是一个别名列,并且正在使用计算列进行引用,那么只需在C#端的select语句中引用计算列...