我目前正在研究视图引擎,Razor Views 对我来说变得非常有趣。我正在开发一个 ASP.NET 4.0 Web 表单应用程序。我能找到的 Razor 视图示例主要是 MVC 应用程序。
是否可以将 Razor 视图集成到 Web 表单应用程序中?这样做有好处吗?我希望这样做的主要原因是为我的应用程序架构创建一个新层,并可能创建一个可以测试的新区域。
当然可以!通过使用网页项目从 Microsoft 中,您可以像通常加载 UserControl 一样加载 razor 类,通过提供类/razor 文件的路径。你得到的是一个实例WebPage您可以执行它,这将为您提供一个可以在页面上打印出来的字符串。
我自己做过这个,实施了Composite C1 CMS 的 Razor 功能并且它的源代码可以免费获得http://compositec1contrib.codeplex.com/。我将在这里强调重要的部分。
确保您在 web.config 中注册了 .cshtml 文件的构建提供程序
确保您具有必要的 system.web.webPages.razor 配置设置
像这样实例化 .cshtml 文件的实例var webPage = WebPage.CreateInstanceFromVirtualPath(_relativeFilePath);
(see doc)
像这样获取 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();
只需在 WebForms 页面上输出字符串即可
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)