c# - 使用razor/asp.net mvc3生成静态html页面?

标签 c# html asp.net-mvc razor

对于一个项目,我必须生成静态 .html 页面,这些页面将发布到远程服务器上。

我必须通过从 SQL Server 数据库获取数据的 C# 代码自动创建这些文件。

数据不会经常更改(每 4-5 个月),并且该网站将非常频繁。

因为我发现 asp.net MVC3 的 razor synthax 非常有效,我想知道是否可以使用 asp.net MVC3/Razor 来生成那些 .html 页面?

所以:

  1. 这是个好主意吗?
  2. 如果是,有什么好的方法?
  3. 如果你想用另一种好的方式做这件事,哪种方式?

谢谢你的帮助

编辑

关于答案,我需要做一个精确:我不想/不需要使用网络缓存,原因有很多(加载(每月加载数百万页),集成(我们将我们的页面集成到一个优化的apache,网站的另一部分),页面数量(如果我有很多时间相同的页面,缓存只会对我有帮助,但我会有〜2500页,所以墨菲定律,除非我放一个非常高缓存超时,我将不得不经常生成它们)。所以我真的搜索了一些东西来生成 HTML 页面。

编辑 2 我刚得到一个新约束:/那些模板必须本地化。这意味着我应该拥有与以下 Razor 代码等效的东西:@MyLocalizationFile.My.MyValue

编辑 3 目前,我正在考虑做一个动态网站,并在上面调用一些 http 查询,以存储生成的 HTML。但是,有没有办法避免 http?意思是模拟一个 http 调用,指定输出流和调用的 url(只有 GET 调用)。

我们之前的加载量确实被低估了,实际上他们每天有超过 100 万的访问者,大约 1400 万页加载/天。

最佳答案

  1. 是的。即使您可以缓存结果,HTML 页面也总是会更快并且使用更少的服务器资源
  2. 一个好方法是转换your razor views into text然后将文本保存为 html 文件。
  3. 另一种方法是使用 T4 templates ,但我推荐 Razor。

关于c# - 使用razor/asp.net mvc3生成静态html页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188173/

相关文章:

c# - 覆盖文本属性以自动修剪文本框值

c# - WPF-单击ListView后设置焦点

C# 使用 System.Type 作为通用参数

c# - 我有一个带有词法分析器、解析器和求值器的自定义表达式程序。我如何对其进行 LINQ 化?

html - 防止突出显示的表格中 Angular 边框

javascript - 附加到页面的其他部分时,将复选框的值设置为 "checked"

javascript - 启用溢出时如何将 "li"放在 "ul"之上?

asp.net-mvc - 创建新的 ASP.Net MVC 项目 - 单元测试对话框不显示

c# - 从外部库并发访问 HttpContext

c# - Json序列化错误 "There is already an open DataReader associated with this Command"