Domanda

È possibile utilizzare il motore a rasoio (razorengine.codeplex.com) in una WebApplication WebForms? Sto usando i file per definire i modelli ad es.

Sample.cshtml

<h1>Hello</h1>

O campione2.cshtml (con ereditari per abilitare Intellisense)

@inherits SomeBaseClass<SomeModelClass>
<h1>Hello @Model.SomeProperty</h1>

All'inizio dell'applicazione, compilo i modelli:

//get files and loop
RazorEngine.Razor.Compile(templateString, razorPath);

In un codice di controllo utente-behind I caricamento / analizza il modello:

RazorEngine.Razor.Run<SomeModelClass>(model, razorPath);

Problema:

Sample.cshtml dà la seguente eccezione:

Digitare 'asp._page_razor_sample_cshtml' non eredita da 'system.web.ui.usercontrol'.

Sample2.cshtml fornisce la seguente eccezione (Codice in cui si verifica l'eccezione, estratto dalla sorgente CSHTML compilata ...):

CS0103: il nome "contesto" non esiste nel contesto attuale

Line 37:         protected ASP.global_asax ApplicationInstance {
Line 38:             get {
Line 39:                 return ((ASP.global_asax)(Context.ApplicationInstance));
Line 40:             }
Line 41:         }

È anche possibile utilizzare il motore di rasoio in questo modo?

È stato utile?

Soluzione 2

Questo problema non era correlato al motore del rasoio in alcun modo. Stavo usando un parametro da qualche parte nel mio CMS che era una parola riservata (non documentata!). Usando path Come nome di parametro in cui viene utilizzato anche dal sistema stesso può causare risultati piuttosto strani ... Ancora di più se il valore del parametro è effettivamente un percorso che porta a un file ...

Altri suggerimenti

Ho trovato alcune informazioni sull'uso del rasoio con pagine master / parziali:

http://www.eworldui.net/blog/post/2011/01/07/using-razor-pages-with-webforms-mater-pages.aspx

Anche se non penso che tu possa usarlo generalmente all'interno delle forme web.

Tuttavia, Scottha ha messo un progetto su Nuget che ha reso più facile abilitare MVC all'interno di un'app WebForms, quindi questo potrebbe essere utile se stai solo cercando di usarlo per cose specifiche all'interno della tua app. Lo ha dimostrato nel suo discorso di Nuget con Phil Haack a Mix:

http://nuget.org/list/packages/addmvc3towebforms

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top