我有一个带有计算列的数据库表。计算列将两个名称(第一个和最后一个)合并为一个显示名称。在下面的代码中,我想指定计算列的值,名为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>
答案 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语句中引用计算列...