0

我正在开发在 MVC3 中创建的会员应用程序。我有两种不同类型的成员组织个人。他们支付会员费后,我需要跟踪他们的付款历史。因此,在第一行(文本Member之后的字段)中,我需要在 DropDownList 中显示 Organization 的“OrganisationName”Individual的“MemberForname” 。但现在我只能显示“OrganisationName”或“MemberForname”。我尝试了很多,但仍然无法通过显示两者来弄清楚。有任何想法吗?提前致谢。[上面的屏幕截图仅显示“OrganisationName”,底部仅显示“MemberForname”]。

        <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>

在此处输入图像描述

4

1 回答 1

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
于 2013-07-30T11:05:34.733 回答