Asp.net-Mvc

如何使用 @Html.DropDownListFor 在 asp.net MVC 3 中為 SelectList 描述組合兩個 dataTextFields

  • July 3, 2017

我正在返回一些儲存的聯繫人以查看 DropDownList,但我無法在我的 SelectList 中包含多個 dataTextField。

目前我有:

@Html.DropDownListFor(model => model.Account.AccountContacts, 
        new SelectList(ViewBag.DDContacts, "Contact.ContactID", "Contact.FirstName"),   
        new { @class = "select", style = "width: 100px;" })

我想擁有:

@Html.DropDownListFor(model => model.Account.AccountContacts, 
       new SelectList(ViewBag.DDContacts, "Contact.ContactID", "Contact.FullName"),         
       new { @class = "select", style = "width: 100px;" })

它結合了 FirstName 和 LastName 屬性。

更新:我知道擴展聯繫人屬性,我很好奇是否有一種簡化的方法可以在視圖或控制器中完成此操作。我在這裡嘗試了兩種解決方案均無濟於事。如何在 SelectList 文本描述中組合兩個欄位?

擴大聯繫

public partial class Contact
{
  private string _nameFull;
  public string NameFull
  { 
     get{return FirstName + " " + LastName;}
  }
}

我意識到這個問題有一個認可的答案,儘管我不相信這是提問者想要的。我遇到了這個問題,這就是我解決它的方法:

@Html.DropDownListFor(model => model.Account.AccountContacts, 
    new SelectList((from c in ViewBag.DDContacts.ToList() select new {
        ID_Value = c.Contact.ContactID,
        FullName = c.Contact.FirstName + " " + c.Contact.LastName
    }), "ID_Value", "FullName"),   
    new { @class = "select", style = "width: 100px;" })

工作原理: 我們使用 linq 從列表中選擇特定數據並將其放入新對像中。這個新對象將只包含兩個屬性,“ID_Value”和“FullName”。現在我們的 DropDownListFor 可以使用這個新對象來實現我們想要的輸出。

引用自:https://stackoverflow.com/questions/10030753