2013-02-11 3 views
1

Есть ли способ использовать условие в элементе управления ASP MVC3 @Html.DisplayFor()? Ниже приведен синтаксис, который я попытался. Хотя кажется, что partner.TradingPartners может использовать .Where<>, согласно Visual Studio, я делаю это неправильно!Использование условия в ASP MVC3 Html.DisplayFor управления

Вот синтаксис я использую

 @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 [email protected] 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

+7

Больше очиститель, чтобы отфильтровать этот список в контроллере –

ответ

1

Edit: После того, как вопрос был обновлен (код внутри Еогеасп):

 @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> 
+2

Удаленный ответ, вы избили меня до него. Но я все же думаю, что это правильно, чтобы рассмотреть то, что сказал сорок два ... это, вероятно, лучше сделано в контроллере. –

+1

Правда. Лучшая практика - это сделать это в контроллере. +1 к @ Forty-Two – Akhil

+0

К сожалению, я должен был быть более ясным в своем описании кода. Это происходит внутри цикла 'foreach' – NealR

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