首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用razor/asp.net mvc3生成静态html页面?

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

Stack Overflow用户
提问于 2012-06-25 19:07:48
回答 7查看 9.2K关注 0票数 21

对于一个项目,我必须生成要在远程服务器上发布的静态.html页面。

我必须从c#代码自动创建这些文件,该代码从SQL Server数据库获取数据。

数据将不会经常改变(每4-5个月),这个网站将是高度频繁的。

由于我发现asp.net MVC3的剃刀synthax非常有效,我想知道是否可以使用asp.net MVC3/Razor来生成这些.html页面?

所以:

  1. 这是个好主意吗?
  2. 如果是,好的方法是什么?
  3. 如果你想出另一种好的方法,那是哪种方法?

谢谢你的帮助

编辑

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

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

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

我们之前的负载数字确实被低估了,实际上他们每天有100多万访问者,大约1400万页面负载/天。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-09-17 15:16:19

最后,我创建了一个普通的asp.net MVC网站,然后使用WebClient在页面上生成页面。

就像这样,我可以预览网站,我可以享受Razor+MVC助手的全部功能。

票数 1
EN

Stack Overflow用户

发布于 2012-06-25 19:19:52

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

Stack Overflow用户

发布于 2012-06-25 20:16:46

你可以使用Razor引擎(NuGet-link,他们的website),这样你就可以在不使用MVC的情况下从控制台应用程序创建模板。

我的用法如下:

代码语言:javascript
复制
public string ParseFile<T>(string fileName, T model) {
    var file = File.OpenText(fileName);
    var sb = new StringBuilder();
    string line;
    while ((line = file.ReadLine()) != null)
    {
        // RazorEngine does not recognize the @model line, remove it
        if (!line.StartsWith("@model ", StringComparison.OrdinalIgnoreCase))
            sb.AppendLine(line);
        }
        file.Close();

        // Stuff to make sure we get unescaped-Html back:
        var config = new FluentTemplateServiceConfiguration(
                    c => c.WithEncoding(RazorEngine.Encoding.Raw));

        string result;
        using (var service = new TemplateService(config))
        {
            return service.Parse<T>(sb.ToString(), model);
        }
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11188173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档