2013-11-14 14 views
8

Ich habe die folgende Ansicht: -für jede Schleife innerhalb einer Verwendung DisplayFor

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

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

Aber ich nicht imstande bin, die folgende

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

Ich erhalte die folgende Störung zu schreiben: -

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

Also kann jemand Rat, wie DisplayFor innerhalb meiner Feindschleife verwenden?

Dank

+0

Versuchen Sie '' var'' durch den Typ '' info'' in '' foreach'' zu ersetzen – acfrancis

Antwort

15

DisplayFor braucht einen Ausdruck. Versuchen Sie folgendes:

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

Hier model ist ein Lambda-Ausdruck Parameter, und obwohl es ist nicht wirklich in der Lambda-Ausdruck verwendet wird, wird diese Syntax erforderlich, um den Ausdruck zu konstruieren.

Verwandte Themen