1

@Html.DisplayFor()ASP MVC3コントロールで条件を使用する方法はありますか? 以下は、私が試みた構文です。partner.TradingPartnersを使用できるよう に見えますが.Where<>、Visual Studio によると、私は間違っています!

これが私が使用する構文です

        @foreach (var item in Model.Agent.SymNumberToAgentId)
        {
            var gogo = ViewBag.Periscope + item.AgentId.Trim();
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.DisplayAgentId)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.CompanyCode)
                </td>
                <td>
                    @foreach (var partner in Model.AgentIdDetails)
                    {
                        @Html.DisplayFor(modelItem => partner.TradingPartners.Where(item => item.AgentId == partner.AgentId))
                    }
                </td>
                <td>
                    @Html.ActionLink("Remove", "Delete", "SymetraNumberToAgentId", new { id = item.SymetraNumber, aid=item.AgentId}, null)
                </td>
                <td>
                    <a href=@gogo target="_blank">View in Periscope</a>
                </td>
            </tr>
        }

ここにエラーメッセージがあります

CS1928: 'System.Collections.Generic.IList<string>' does not contain a definition for 'Where' and the best extension method overload 'System.Linq.Enumerable.Where<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,bool>)' has some invalid arguments

4

1 に答える 1

1

編集:質問が更新された後(foreach内のコード):

      @foreach (var partner in Model.AgentIdDetails)
                    {
                        @Html.DisplayFor(modelItem => partner.TradingPartners.Where(x => x.AgentId == item.AgentId).XYZProperty)
                    }

where句で適切な構文を使用する必要があります。また、フィルタリングされた取引先のプロパティを指定する必要があります。

<td>
    @foreach (var partner in Model.AgentIdDetails)
    {
        @Html.DisplayFor(modelItem => partner.TradingPartners.Where(item => item.AgentId == partner.AgentId).XYZProperty)
    }
</td>
于 2013-02-11T21:55:01.047 に答える