0

我有一个带有计算列的数据库表。计算列将两个名称(名字和姓氏)合并为一个显示名称。在下面的代码中,我想指定名为 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>
4

3 回答 3

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
)
于 2012-05-30T17:31:17.837 回答
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>
于 2012-05-30T17:03:20.383 回答
0

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

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

于 2012-05-30T17:03:45.817 回答