Me gustaría usar la siguiente plantilla de afeitar con RazorEngine:RazorEngine - Uso y Disposición Html.Raw
@{
Layout = null;
}
@Html.Raw(MyNamespace.MyClass.SomePropertyWithHtml)
Cuando lo llamo me sale 2 errores - se queja que no puede manejar Diseño y, otro quejándose de que no sabe cómo tratar con el helper Html.
Aquí hay otras preguntas y respuestas que sugieren que esto es posible en v3, y estoy usando el paquete actual en NuGet - v3.0.8 - pero no está claro cómo se hace esto. Actualmente estoy llamándolo así:
string html = RazorEngine.Razor.Parse(File.ReadAllText(path));
Otras respuestas se sugiere emplear Razor.SetBaseTemplate en primer lugar, que no aparece en la fuente de corriente o la rama 3.0 en git. Al mirar el código, veo el código haciendo referencia a diseños y secciones, pero el código de diseño parece depender de la resolución de una plantilla por nombre, mientras que lo que estoy tratando de hacer ni siquiera necesita resolver una plantilla, solo necesito que haga frente con el diseño = null. El código también incluye una MvcTemplateBase que parece ofrecer un HtmlHelper en el proyecto web, pero es la única clase en ese proyecto y no se hace referencia en ningún lugar en los proyectos Web o Core.
Esta pregunta similar: RazorEngine issues with @Html
sólo enlaces a la página diciendo que puede encontrar más información allí - la página es sólo una frase corta descripción del proyecto.
Entonces, ¿cómo puedo analizar la vista anterior de Razor con RazorEngine v3.0?
Oh, estás usando RazorEngine ... Una cosa a tener en cuenta es que Razor no es MVC. Se ha trabajado mucho con el nuevo RazorEngine, pero Antaris ha estado muy ocupado últimamente. Debería poder usar '@inherits MvcTemplateBase' en la parte superior de su archivo para usarlo. –
Buildstarted
Gracias por la sugerencia. Me doy cuenta de que Razor y MVC están separados, pero mi objetivo es usar las mismas plantillas MVC Razor dentro y fuera de la tubería ASP.Net normal. La versión en NuGet no contiene una clase llamada MvcTemplateBase. La última versión de Git sí lo hace, pero no es genérica, solo es MvcTemplateBase. Si agrego una línea como @inherits RazorEngine.Razor.MvcTemplateBase obtengo una Excepción en TemplateService.SetModelExplicit quejándose de que el tipo de plantilla no tiene una propiedad llamada Modelo. Ideas? –