Asp.net mvc 3 使用视图模型托管Razor视图引擎
我想使用ASP.NET MVC之外的Razor视图引擎来生成电子邮件的HTML,我喜欢它的语法,而且当我的项目中已经有Razor时,似乎没有必要使用另一个模板引擎 所以我环顾四周,找到了这本关于如何做的指南。。 不幸的是,我找不到任何指定视图模型的方法,这很令人伤心,因为我真的,真的很想拥有强类型视图,即使是我的电子邮件Asp.net mvc 3 使用视图模型托管Razor视图引擎,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我想使用ASP.NET MVC之外的Razor视图引擎来生成电子邮件的HTML,我喜欢它的语法,而且当我的项目中已经有Razor时,似乎没有必要使用另一个模板引擎 所以我环顾四周,找到了这本关于如何做的指南。。 不幸的是,我找不到任何指定视图模型的方法,这很令人伤心,因为我真的,真的很想拥有强类型视图,即使是我的电子邮件 那么,有没有办法在ASP.NET MVC之外用强类型视图模型解析Razor模板呢?或者说,这太麻烦了,不值得这么麻烦?使用@model标记实际上是@inherits标记的快捷
那么,有没有办法在ASP.NET MVC之外用强类型视图模型解析Razor模板呢?或者说,这太麻烦了,不值得这么麻烦?使用@model标记实际上是@inherits标记的快捷方式 如果指定了类,则生成的类将继承使用@inherits指定的类 因此,如果指定
@inherits MyTemplate
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
}
}
类MyTemplate{
公共T模型{get;set;}
公共抽象void Execute();
公共虚拟无效写入(对象值){
书面(价值);
}
公共虚拟void writeleral(对象值){
//真正的文字在这里
}
}
razor解析的结果,您需要编译,并从中创建一个实例
创建实例后,您可以设置Model属性,并调用Execute生成结果,生成的方式和内容取决于您。使用@Model标记实际上是@inherits标记的快捷方式 如果指定了类,则生成的类将继承使用@inherits指定的类 因此,如果指定
@inherits MyTemplate
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
}
}
类MyTemplate{
公共T模型{get;set;}
公共抽象void Execute();
公共虚拟无效写入(对象值){
书面(价值);
}
公共虚拟void writeleral(对象值){
//真正的文字在这里
}
}
razor解析的结果,您需要编译,并从中创建一个实例
创建实例后,您可以设置Model属性,并调用Execute生成结果,生成的方式和内容由您决定。对于最后一个稳定的RazorEngine,只需指定
@inherits RazorEngine.Templating.TemplateBase<MyModel>
@继承RazorEngine.Templating.TemplateBase
除非最后一个稳定的RazorEngine需要更多功能,否则只需指定
@inherits RazorEngine.Templating.TemplateBase<MyModel>
@继承RazorEngine.Templating.TemplateBase
除非您需要更多的功能查看在MVC之外托管razor的预构建包查看在MVCThanks之外托管razor的预构建包,这正是我想要让RazorEngine正常工作的路线!谢谢,这正是我要找的让RazorEngine正常工作的线路!