ASP MVC SelectList()名称连接

use*_*388 1 vb.net asp.net-mvc asp.net-mvc-3

我有以下代码可行:

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName")
Run Code Online (Sandbox Code Playgroud)

我想不仅要显示名字,还要显示姓氏,所以我试过这个:

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName" + " " + "Resource_LastName")
Run Code Online (Sandbox Code Playgroud)

但是,它没有用,因为它似乎寻找一个名为" Resource_FirstNameResource_LastName." 的模型属性.如何连接它们以便在SelectList()方法中使用?

Pep*_*pto 7

因为Mvc中的SelectList构造函数使用dataTextField参数和反射来在运行时"拉"属性值,所以没有办法完成你在那里做的事情,一个简单的解决方法

例如,在您的表类(使用部分类,如果使用EF)上创建一个新的readonly,称为"Caption".然后在getter中返回Resource_FirstName"+""+ Resource_LastName

class db1.Tbl_Resources
{
    public string Caption { get {return Resource_FirstName + " " + Resource_LastName;}}
}
Run Code Online (Sandbox Code Playgroud)

然后在你的View或Helper中

New SelectList(db1.Tbl_Resources, "Resource_ID", "Caption");
Run Code Online (Sandbox Code Playgroud)

至少我是如何处理这种情况的,这是相当普遍的.