Razor.Compile
не требует указания типа модели при компиляции.
public class ActualType { public string Firstname {get;set;}}
Razor.Compile("@Model.Firstname", "outputname");
Razor.Run<ActualType>(model, "outputname");
Должно быть хорошо для вас.
Объявление @model
еще не доступно. В настоящее время есть патч для него на странице списка патчей (http://razorengine.codeplex.com/SourceControl/list/patches), однако он добавляет только поддержку времени разработки, а не время выполнения. Текущая причина этого заключается в том, что MVC RazorEngine уже делает это, и мы не хотели путаницы относительно того, является ли этот механизм бритвы тем же, что и реализация бритвы MVC (многие считают, что)
Мы рассчитываем реализовать его для v2.2, когда у нас обоих будет время поработать над ним.
Пока модель, которую вы передаете, соответствует требуемым параметрам, используемым шаблоном, вам может пригодиться.
На самом деле не должно быть слишком сложно изменить патч, чтобы заставить шаблон использовать объявление @model
, поскольку оно template<t>
. Я мог бы работать над этим сегодня вечером, возможно, если это серьезное требование. Мне любопытно, почему вы не хотите включать его в объявление компиляции, если вы не беспокоитесь о смене моделей или не знаете модель заранее ... но в конце вы всегда знаете тип перед вами передать его.