2009-07-22 6 views
0

Dies wirft Fehler:RenderPartialForEach <T> (..) HtmlHelper für asp.net mvc?

public static void RenderPartialForEach<T> 
(this HtmlHelper helper, string partialName, IList<T> list) 
{ 
    foreach (var item in list) 
     helper.RenderPartial(partialName, item); 
} 

=>

Error Message: CS1519: Invalid token '(' in class, struct, or interface member declaration

Line 283: #line default
Line 284: #line hidden
Line 285: @__w.Write("\r\n \r\n\r\n\r\n");
Line 286: }
Line 287:

Ist es möglich, sauber Htmlhelper
zu schaffen, die für jedes Element in der Liste Teilansichten zu machen imstande ist es als Modell zu übergeben?

Edit:
Das ist nur ein Fehler von meiner Seite war. Ich habe vergessen, '<%}%>' hinzuzufügen.
Und verwirrt Ursache der Fehlermeldung. ^^

Antwort

1

Sie müssen die Methode in einer Klasse deklarieren. Es ist nicht offensichtlich, dass Sie das tun, aber es würde sicherlich die Art von Fehler verursachen, die Sie sehen.

public static class CustomHtmlHelperExtensions 
    { 
     public static void RenderPartialForEach<T>(
       this HtmlHelper helper, 
       ... 
    } 

EDIT: Im Rückblick des Text des Fehlers gegeben, vermute ich, dass der Fehler an anderer Stelle in Ihrem Markup liegt. Vielleicht fehlt Ihnen eine Klammer um eine if-Anweisung oder foreach-Klausel.

+0

Eigentlich habe ich meine Frage schon gelöscht - aber dann wieder geöffnet, nur um Ihre Antwort als akzeptiert zu markieren. Ziemlich erstaunlich (wegen der bereitgestellten Informationen). –

1

Wo deklarierst du so etwas? Versuchen Sie, diese Erweiterungsmethode in einer separaten statischen Klasse in einer Codedatei zu schreiben, nicht inline in .aspx.

+0

Hat das (15 Zeichen -_-) –

+0

Die Fehlermeldung sieht wie ein Problem in '.aspx ', nicht im Code aus. Wie nennst du es? –

0

Nur eine Vermutung ... Sie implementieren eine generische Methode (von T), aber Sie ersetzen nicht wirklich den generischen Parameter (T) durch ein Typargument?

+0

Nein ... es ist nicht so schlimm mit mir. Wirklich - es scheint, dass der Fehler irgendwo anders ist, und wegen der Ungenauigkeit der Fehlermeldung bin ich völlig verwirrt worden. –

Verwandte Themen