ASP.NET Web 项目中的 Razor 视图

2023-12-07

我目前正在研究视图引擎,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(使用前将#替换为@)

ASP.NET Web 项目中的 Razor 视图 的相关文章

随机推荐

  • 是否可以将身份验证从 Webbrowser 转移到 WebRequest

    我正在使用网络浏览器控件登录任何网站 然后我想使用 WebRequest 或 WebClient 下载一些子页面 html 此链接必须需要身份验证 如何将Webbrowser认证信息传递给Webrequest或Webclient 如果问题只
  • UI 测试失败并出现错误“无法在 15.0 秒内获取快照”

    我有一个包含大量单元格的表格视图 我尝试从此表格视图中点击特定单元格 但测试以这个错误结束 15 0s内抓拍失败 我假设系统将在访问其元素之前拍摄整个表视图的快照 由于cell数量巨大 快照时间不够 15秒可能是系统默认时间 我手动设置睡眠
  • iPhone SDK - 在 Web 视图中打开 UITextView 中的链接

    我在 UITextView 上指定了 dataDetectorTypes 以便在触摸时在 Safari 中打开 URL 是否可以拦截此行为 以便我将 URL 加载到 UIWebView 中 或者我会编写自己的 URL 检测器代码来重新路由它
  • 故障排除:不包含适合入口点的静态“main”方法

    我正在尝试创建一个多类程序 该程序创建学生对象 然后允许您更改其中一个学生对象的未声明专业的值 这是我的代码 StudentApp cs using System using System Collections Generic using
  • XSLT:用 \' 替换单引号

    我正在使用 XSLT 将 XML 转换为 html php 文件 在此 XSLT 中 我用 php 代码替换了一些标签 现在我必须将属性值传递到该 php 代码中 我现在的问题是我必须用反斜杠转义单引号才能使其工作 这可以通过 XSLT 实
  • Shapeless:使用 Coproduct 拥有自己的 HList 约束

    注 从Shapeless 尝试通过类型限制 HList 元素 问题 2 使用余积的自身约束 我真正想做的是使用余积编写一个新的约束 trait CPConstraint L lt HList CP lt Coproduct extends
  • Visual Studio javascript 调试不起作用

    这个博客 从 Visual Studio 在 Microsoft Edge 中调试 JavaScripthttps devblogs microsoft com visualstudio debug javascript in micros
  • CSS:css末尾的问号有什么作用?

    维基百科 css 的示例 content a href https link https background url images external link ltr icon png 2 no repeat scroll right c
  • 如何删除 div 上的边框部分以使左侧导航看起来与主要内容部分无缝衔接?

    我试图删除活动菜单项与右侧内容 div 相遇的左边框 See http d pr i hfRZ 所以看起来活动元素与主要内容 div 的级别相同 如下所示http dribbble com shots 663779 Left navigat
  • swift CGPDF文档解析

    我正在尝试使用 Swift 来解析 PDF 文档的内容 遵循 Apple 的编程指南 其中所有示例都是 ObjC let filepath Users ben Desktop Test pdf let localUrl filepath a
  • 在 Windows 上从命令行下载最新的 Java SE 运行时环境 8

    在 Windows 服务器上 我正在寻找一种可靠的方法来从命令行下载最新的 Java SE 运行时 我的要求是检查系统上是否安装了java 如果没有找到java 我们的MSI安装程序 使用WIX创建 需要连接oracle java下载页面并
  • 较小时 UIScrollView 的中心内容

    我有一个UIImageView里面一个UIScrollView我用它来缩放和滚动 如果滚动视图的图像 内容比滚动视图大 则一切正常 但是 当图像变得小于滚动视图时 它会粘在滚动视图的左上角 我想让它保持居中 就像照片应用程序一样 有关保留内
  • 解码十六进制:这一行的作用是什么 (len & 0x01) != 0

    我正在查看 Apache commons 库中的一段代码 并且想知道这些条件到底有何作用 public static byte decodeHex final char data throws DecoderException final
  • 在特定网络接口 Linux/Unix 上使用 C++ TCP 客户端套接字

    我有以下代码 默认情况下连接到接口 eth0 1G NIC 但我想使用 eth5 10G NIC 进行连接 class TCPClientSocket protected int socket file descriptor public
  • 刷新 angularjs 中的标题页面

    在 angularjs 中登录后我必须刷新 header html 当调用登录时 整个页面将被刷新并初始化标题 但登录后仅加载内容而不是标题 我可以做什么来刷新标题 索引 html div class container holder di
  • 查找所有表列的最小值和最大值

    该查询按预期工作 但速度非常慢 这里有人有提高性能的建议吗 我本质上只是创建一个临时表来存储所有表和列名称 并通过 WHILE 语句循环它们 以使用我想要的详细信息创建到另一个表的动态插入 我最近的一次运行花费了大约 21 分钟 这并不完全
  • 计算Java中HashMap的开销

    假设我在哈希图中存储 1000 个对象 这个哈希图经过扩展 允许我将三维坐标映射到存储在其中的对象 里面的物体有固定的大小 哈希键是一个长整数 我将如何 以数学方式 计算出该结构的可能开销 它是否足够重要 例如 如果内部数据约为 256mb
  • 从 vba 到平面文件的 Unicode 字符串

    我想将 excel vba 宏中的 unicode 字符串存储在 Windows 盒子上的平面文件中 该宏将普通字符串转换为 unicode 表示形式 需要将其存储在文件中并稍后检索 如前所述 您可以使用 Microsoft 脚本运行时 s
  • 根据屏幕尺寸更改列数

    我正在尝试 Bootstrap 我想知道如何根据屏幕尺寸调整列数 我从 Bootstrap CSS 教程中看到了这个 div class row div class col xs 12 col md 8 col xs 12 col md 8
  • ASP.NET Web 项目中的 Razor 视图

    我目前正在研究视图引擎 Razor Views 对我来说变得非常有趣 我正在开发一个 ASP NET 4 0 Web 表单应用程序 我能找到的 Razor 视图示例主要是 MVC 应用程序 是否可以将 Razor 视图集成到 Web 表单应