2012-05-30 63 views
0

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

仅供参考,这是MVC的测试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> 

回答

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 
) 
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> 
0

只要列是一个实际的现场,当您连接到数据库时,你在做一个选择它应该是一种选择带有DISTINCT的DDL。

如果它是一个别名的列,并与一列computated然后刚才提到的计算列在C#的侧select语句参考...