Ich möchte einen Template-Parameter an meine Hilfsmethode für Renderfehler übergeben. Ich habe einige Beispiele gesehen, in denen dies getan wird, aber anscheinend müssen die Variablen in der Vorlage im Geltungsbereich sein, wenn der Helfer aufgerufen wird.MVC Razor: Wie Referenz Helper-Parameter in Razor Markup?
z.B. Expression of HelperResult to format item from a list
Ich hoffe, wie etwas zu tun:
public static MvcHtmlString ErrorBlock<TModel>(this HtmlHelper helper, TModel model, string @class = null, object context = null, string view = null, object attributes = null, Func<ErrorModel,HelperResult> errorTemplate = null)
where TModel : ErrorModel
...
@ShopMR.ErrorBlock(Model, errorTemplate: r => @<div>@r.Message</div>)
Aber ich erhalte die folgenden Compiler-Fehler:
- Kann nicht Lambda-Ausdruck umwandeln soll Delegate-Typ, weil einige der Rückgabetypen im Block nicht implicit sind Itly umwandelbar an den Delegaten Rückgabetyp
- nicht Lambda-Ausdruck konvertieren kann ‚HelperResult‘ zu geben, weil es nicht eine Art delegieren ist
ich versucht habe, einen Delegierten zu schaffen, sondern es ergibt sich der gleiche Fehler. Ist das möglich? Sollte meine Funktion einen anderen Typ zurückgeben, der als Razor-Text übersetzt/ausgewertet werden kann?
Das behebt das Problem, obwohl ich gehofft hatte, es gäbe eine kühlere Lösung, die es mir noch erlauben würde, die Überprüfung der Kompilierungszeit zu nutzen. Ich danke dir sehr! –