Vorrei utilizzare il seguente modello Razor con RazorEngine:RazorEngine - Usa Layout e Html.Raw
@{
Layout = null;
}
@Html.Raw(MyNamespace.MyClass.SomePropertyWithHtml)
Quando lo chiamo io ottengo 2 errori - uno lamentarsi che non può gestire layout, e un altro si lamenta che non sa come comportarsi con l'helper Html.
Ci sono altre domande e risposte che suggeriscono che questo è possibile in v3, e sto usando il pacchetto corrente su NuGet - v3.0.8 - ma non è chiaro come sia fatto. Attualmente sto chiamando in questo modo:
string html = RazorEngine.Razor.Parse(File.ReadAllText(path));
Altre risposte suggerisco di usare Razor.SetBaseTemplate prima, che non compare nella sorgente di corrente o il ramo 3.0 su git. Guardando il codice vedo codice che fa riferimento a layout e sezioni, ma il codice di layout sembra dipendere dalla risoluzione di un modello per nome, mentre quello che sto cercando di fare non ha nemmeno bisogno di risolvere un modello - ho solo bisogno di far fronte con il layout = null. Il codice include anche un MvcTemplateBase che sembra offrire un HtmlHelper nel progetto Web, ma è l'unica classe in quel progetto e non è referenziato in alcuno dei progetti Web o Core.
Questa domanda simile: RazorEngine issues with @Html
Basta un link alla homepage dicendo è possibile saperne di più là - la home page è solo una breve frase che descrive il progetto.
Quindi, come si analizza la vista Razor precedente con RazorEngine v3.0?
Oh, stai usando RazorEngine ... Una cosa da tenere a mente è che Razor non è MVC. Molto lavoro è stato fatto con il nuovo RazorEngine ma Antaris è stato molto impegnato ultimamente. Dovresti essere in grado di usare '@inherits MvcTemplateBase' nella parte superiore del tuo file per usarlo. –
Buildstarted
Grazie per il suggerimento. Mi rendo conto che Razor e MVC sono separati, ma il mio obiettivo è utilizzare gli stessi modelli MVC Razor all'interno e all'esterno della normale pipeline ASP.Net. La versione su NuGet non contiene una classe denominata MvcTemplateBase. L'ultima versione di Git lo fa, ma non è generico, è solo MvcTemplateBase. Se aggiungo una riga come @inherits RazorEngine.Razor.MvcTemplateBase, ottengo un'eccezione in TemplateService.SetModelExplicit che lamenta che il tipo di modello non ha una proprietà denominata Modello. Idee? –