Są tu dwa problemy:
- Tak, możesz uruchomić Razor View Engine poza kontekstem domeny aplikacji ASP.NET, jak wyjaśniono w blogu Andrew: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of -aspnet-revised-for-mvc3-rc.html
- Jednak Razor nadal koncentruje się głównie na generowaniu znaczników podobnych do XML (np. HTML) w tym sensie, że parser Razor używa obecności
<tags>
do określenia przejścia między kodem a znacznikami. Prawdopodobnie możesz go użyć do wygenerowania dowolnego tekstu, ale możesz napotkać problemy, gdy dane wyjściowe nie będą zgodne z założeniami Razora dotyczącymi Twoich zamiarów.
Na przykład, gdy jest to prawidłowy kod Razor (z powodu <div>
tagu):
@if(printHello) {
<div>Hello!</div>
}
Poniższy fragment jest nieprawidłowy (ponieważ Hello! Jest nadal traktowany jako kod):
@if(printHello) {
Hello!
}
Istnieje jednak specjalny <text>
tag, którego można użyć do wymuszenia przejścia dla bloków wieloliniowych ( <text>
tag nie będzie renderowany):
@if(printHello) {
<text>Hello!
Another line</text>
}
Istnieje również krótsza składnia, która wymusza przejście jednej linii za pomocą @:
:
@if(printHello) {
@:Hello!
}
<text>
tagi lub używać ich@:
od czasu do czasu. Gdy pojawi się obsługa edytora VS dla składni Razor, łatwo będzie stwierdzić, kiedy nastąpią przejścia.Sprawdź RazorEngine , to mała struktura zbudowana na bazie Razor, która pozwala ci to zrobić.
źródło
Spójrz na bibliotekę RazorTemplates . Jest lżejsza niż biblioteka RazorEngine, jest bezpieczna dla wątków i ma bardzo ładny minimalny interfejs.
Kompilowanie i renderowanie szablonu jest tak proste, jak dwa wiersze kodu:
źródło
Zarówno RazorEngine, jak i RazorTemplates są już tutaj wspomniane, ale sprawdź RazorMachine . Możesz po prostu skierować swoją aplikację inną niż MVC do folderu ~ / Views (innej) istniejącej aplikacji MVC, wykonać z wysłaniem odpowiedniego modelu i uzyskać wyrenderowane dane wyjściowe w 2 wierszach kodu:
źródło
Wygeneruj kod lub tekst: masz na myśli szablony T4: http://msdn.microsoft.com/en-us/library/bb126445.aspx czy narzędzia codmith?
źródło