ASP MVC SelectList()名称连接

时间:2012-10-16 18:42:28

标签: asp.net-mvc vb.net asp.net-mvc-3

我有以下代码可以使用:

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName")

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

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName" + " " + "Resource_LastName")

但是,它不起作用,因为它似乎寻找名为“Resource_FirstNameResource_LastName”的模型属性。如何连接它们以便在SelectList()方法中使用?

1 个答案:

答案 0 :(得分:7)

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

在您的表类上正确创建一个新的只读(如果使用EF,则使用部分类),例如“Caption”。然后在getter中返回Resource_FirstName“+”“+ Resource_LastName

class db1.Tbl_Resources
{
    public string Caption { get {return Resource_FirstName + " " + Resource_LastName;}}
}

然后在你的视图或助手

New SelectList(db1.Tbl_Resources, "Resource_ID", "Caption");

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