在Asp.net mvc4应用程序中的Html.DropDownList中显示两个字段

时间:2014-01-16 16:19:22

标签: c# asp.net-mvc asp.net-mvc-4 razor html-helper

我有一个asp.net mvc4应用程序,我有这个观点:

 @Html.DropDownList("chef",new SelectList(Model,"Id_user","DName"+ "  " +"DFirstName" ))

我的模型是对象列表User

public class User
{
    public int Id_user
    {
        get;
        set;
    }
    public string DFirstName
    {
        get;
        set;
    }
    public string DName
    {
        get;
        set;
    }
}

我需要在选择项中显示两个字段 DName DFirstName ,我收到此错误

System.Web.HttpException: DataBinding : 'Projet.Models.Administration.User' does not contain a property called 'DName  DFirstName'.

当我尝试显示一个独特的字段时,它可以工作。

  1. 这个问题的原因是什么?
  2. 我该如何解决?

2 个答案:

答案 0 :(得分:4)

您需要更改模型以公开具有此get的属性:

get { return string.Format("{0} {1}", DName, DFirstName);

然后绑定到该新属性。

答案 1 :(得分:2)

您获得异常的原因是Html帮助器方法使用反射来尝试在其绑定源(您的"DName DFirstName"类)上找到名称为User的属性,并且此属性不会存在。

而是创建一个名为fullName

的新属性
get { return DName + " " + DFirstName; }

然后使用它作为显示成员。