当然可以!通过使用Microsoft 的WebPages 项目,您可以通过提供类/razor 文件的路径,以与通常加载 UserControl 相同的方式加载 razor 类。您返回的是一个可以执行的网页实例,它会给您一个可以在页面上打印的字符串。
我自己完成了这项工作,为 Composite C1 CMS 实现了 Razor 功能,并且可以从http://compositec1contrib.codeplex.com/免费获取它的源代码。我将在这里强调重要的部分。
确保您在 web.config 中注册了 .cshtml 文件的构建提供程序
确保您具有必要的 system.web.webPages.razor 配置设置
像这样实例化 .cshtml 文件的实例var webPage = WebPage.CreateInstanceFromVirtualPath(_relativeFilePath);(请参阅文档)
像这样获取 Razor 类的输出
var httpContext = new HttpContextWrapper(HttpContext.Current);
var pageContext = new WebPageContext(httpContext, webPage, null);
var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
{
webPage.ExecutePageHierarchy(pageContext, writer);
}
string output = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
只需在 WebForms 页面上输出字符串即可
| 归档时间: |
|
| 查看次数: |
1275 次 |
| 最近记录: |