2013-07-30 4 views
0

Я работаю над приложением членства, созданным в MVC3. У меня два разных типа членов Организация и Индивидуальный. После оплаты членского взноса мне необходимо отслеживать их историю платежей. Таким образом, в первой строке (поле после текста Member) мне нужно отобразить «OrganisationName» от Организация и «MemberForname» от Индивидуальный в DropDownList. Но теперь я могу отображать только «OrganisationName» или «MemberForname». Я много пробовал, но все еще не могу понять, показывая оба. Есть идеи? Спасибо заранее. [На снимке экрана отображается только «OrganisationName», а внизу отображается только «MemberForname»].DropDownList получает более одного значения в MVC3

 <td> 
      Member 
     </td> 
     <td> 
      @Html.DropDownList("member", ((IEnumerable<ProActiveMembership.Areas.Members.Models.Member>)ViewBag.PossibleMembers).Select(option => new SelectListItem 
      { 
       Text = Html.DisplayTextFor(_ => option.Forename).ToString(), 
       //Text = Html.DisplayTextFor(_ => option.OrganisationName).ToString(), 

       Value = option.MemberID.ToString(), 
       Selected = (Model != null) && (option.MemberID == Model.MemberID) 
      }), "Choose...", new { id = "ddl" }) 
      @Html.ValidationMessageFor(model => model.MemberID) 
     </td> 

enter image description here

+0

Как насчет добавления свойства на 'Member', который будет возвращать как' 'Forename' и OrganisationName'? – andreister

ответ

3

Вы можете установить Text свойство как это: Text = string.Format("{0} {1}", option.Forename, option.OrganisationName)

Ваш код будет выглядеть следующим образом:

<td> 
    Member 
</td> 
<td> 
    @Html.DropDownList("member", ((IEnumerable<ProActiveMembership.Areas.Members.Models.Member>)ViewBag.PossibleMembers).Select(option => new SelectListItem 
    { 
     Text = string.Format("{0} {1}", option.Forename, option.OrganisationName), 
     Value = option.MemberID.ToString(), 
     Selected = (Model != null) && (option.MemberID == Model.MemberID) 
    }), "Choose...", new { id = "ddl" }) 
    @Html.ValidationMessageFor(model => model.MemberID) 
</td> 

Как andreister предлагает также можно добавить элемент до ProActiveMembership.Areas.Members.Models.Member, который возвращает полное имя. Что-то вроде этого:

public string FullName { get { return string.Format("{0} {1}", Forename, OrganisationName); } } 

Вы можете использовать новый элемент, как это:

Text = option.FullName 
+0

привет, Маттиас, это здорово, это работает. большое спасибо. – DanielXu

+0

Без проблем, рад, что я мог бы помочь. –

+0

Mattias, У меня есть аналогичная проблема с dropDownList, я пробовал все это утро, так как я новый человек в mvc3, могу ли я отправить вам код, чтобы дать мне несколько идей? спасибо – DanielXu

Смежные вопросы