Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using DisplayFor inside a for each loop

I have the following view:-

@foreach(var info in Model.Firewall.FirewallCustomers.OrderBy(a=>a.CustomerName)){

<td>@Html.DisplayFor(info.CustomerVLAN.VLANID)</td>
}

But I am unable to write the following

@Html.DisplayFor(info.CustomerVLAN.VLANID)</td>

I will get the following error:-

The type arguments for method 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' cannot be inferred from the usage. Try specifying the type arguments explicitly

So can anyone advice , how to use DisplayFor inside my foeach loop ?

Thanks

like image 380
john Gu Avatar asked Nov 14 '13 23:11

john Gu


1 Answers

DisplayFor needs an expression. Try this:

@foreach(var info in Model.Firewall.FirewallCustomers.OrderBy(a=>a.CustomerName)){
    <td>@Html.DisplayFor(model => info.CustomerVLAN.VLANID)</td>
}

Here, model is a lambda expression parameter, and even though it's not actually used in the lambda expression, this syntax is needed to construct the expression.

like image 68
p.s.w.g Avatar answered Oct 12 '22 12:10

p.s.w.g