Использование тега @model на самом деле является ярлыком для тега @inherits.
Вы указываете класс, от которого будет сгенерирован ваш сгенерированный класс из класса, указанного с помощью @оризонт.
Так что если вы укажете @inherits MyTemplate<MyModel>
MyTemplate должен выглядеть так:
class MyTemplate<T> {
public T Model { get; set; }
public abstract void Execute();
public virtual void Write(object value) {
WriteLiteral(value);
}
public virtual void WriteLiteral(object value) {
// Actual writing goes here
}
}
В результате анализа бритвы вам нужно скомпилировать и создать экземпляр из.
После создания экземпляра вы можете установить свойство Model и вызвать Execute, чтобы сгенерировать результат, как и что вы генерируете, решать только вам.