-2

是否可以组合来自实体的下拉列表值。

假设我有一个姓氏和名字的人员类

我试过这样做:

ViewBag.uservalues = new SelectList(db.Persons, "ID", "FirstName" + " " + "LastName");

但这会吐出一个错误。

4

3 回答 3

2

您对SelectList构造函数的调用

new SelectList(db.Persons,"ID", "FirstName"+" " + "LastName");

使用此重载,它需要您绑定到的公共字段或属性的名称ViewModel,并且您的 ViewModel 中可能没有名为“FirstName LastName”的字段或属性。

ViewModel向您的类添加一个连接两个字段的属性(调用它FirstAndLastName),并在调用中按名称指定该属性SelectList

new SelectList(db.Persons,"ID", "FirstAndLastName");
于 2013-03-04T23:24:19.380 回答
0

由于实体框架创建了部分类,因此您应该在具有要使用的派生属性的同一命名空间中创建另一个部分类。

如果实体框架创建了一个类:

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}}
}

并将其存储在项目中某个位置的另一个文件夹中(但具有相同的命名空间)

于 2013-03-04T23:26:08.547 回答
0
var query = from c in db.Persons
            select new { id = c.ID,Names = c.FirstName + " " + c.LastName };

ViewBag.personid = new SelectList(query, "ID", "Names");
于 2013-03-04T23:29:21.993 回答