C# 下拉列表组合值
是否可以合并实体中的dropdownlist值 假设我有一个姓和名的person类 我尝试过这样做:C# 下拉列表组合值,c#,.net,asp.net-mvc,entity-framework,C#,.net,Asp.net Mvc,Entity Framework,是否可以合并实体中的dropdownlist值 假设我有一个姓和名的person类 我尝试过这样做: ViewBag.uservalues = new SelectList(db.Persons, "ID", "FirstName" + " " + "LastName"); 但是这会抛出一个错误。您对SelectList构造函数的调用 new SelectList(db.Persons,"ID", "FirstName"+" " + "LastName"); 使用,这需要绑定到ViewMod
ViewBag.uservalues = new SelectList(db.Persons, "ID", "FirstName" + " " + "LastName");
但是这会抛出一个错误。您对
SelectList
构造函数的调用
new SelectList(db.Persons,"ID", "FirstName"+" " + "LastName");
使用,这需要绑定到ViewModel
中的公共字段或属性的名称,而ViewModel中可能没有名为“FirstName LastName”的字段或属性
将一个属性添加到连接两个字段的ViewModel
类中(称之为FirstAndLastName
),并在SelectList
调用中按名称指定该属性
new SelectList(db.Persons,"ID", "FirstAndLastName");
因为实体框架创建了分部类,所以应该在同一名称空间中创建另一个分部类,该名称空间具有要使用的派生属性 如果实体fraemwork创建了一个类:
public partial class Person
{
public String FirstName {get;set;}
public String LastName{get;set;}
public Int32 ID{get;set;}
}
创建一个新的分部类
public partial class Person
{
public String FullName {get{ return this.FirstName + " " + this.LastName}}
}
并将其存储在项目中的另一个文件夹中(但名称空间相同)视图代码是什么样子的?
@Html.DropDownList(“personid”,String.Empty)@Html.ValidationMessageFor(model=>model.personid)
因此您在两个不同的位置获得了数据,即ViewModel和ViewBag?我得考虑一下。看起来不太干净。再说一次,它不需要任何魔法弦,所以。
var query = from c in db.Persons
select new { id = c.ID,Names = c.FirstName + " " + c.LastName };
ViewBag.personid = new SelectList(query, "ID", "Names");