【问题标题】:ASP MVC SelectList() Name ConcatenationASP MVC SelectList() 名称连接
【发布时间】:2012-10-06 22:42:24
【问题描述】:

我有以下有效的代码:

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() 方法中使用?

【问题讨论】:

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


【解决方案1】:

因为 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");

至少我是这样处理这种情况的,这很常见。

【讨论】:

  • 很酷的答案。谢谢你的帮助。我会接受这个作为解决方案。注意:为了转换为 VB,我必须从类头中删除 db1.
  • 我还想说 dataTextField 名称必须与类上的属性名称完全匹配,以便反射起作用。希望对你有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 2011-12-23
相关资源
最近更新 更多