我们编写了 razor 扩展方法以在 vbhtml View 中使用它,它可以翻译静态的、非列表的、非生成的元素,即标题、静态导航元素等:
<h1>@Html.GetTagText("aaa"(real string), cultureCode, translationContext)</h1>
有了这个想法,我们每次调用此方法时都会生成对数据库的 X 次调用。
问题:Razor 引擎是否在转换之前和转换之后引发任何事件,或者 ASP.NET 页面生命周期(渲染前、渲染后)中的某种入口点,这将使我们能够:
- 收集所有 getTagText 调用列表
- 做剩下的剃须工作
- 在一次 DB 拍摄中返回所有翻译
- 将正确的翻译放入/替换到正确的位置
或者也许我的想法完全错误, Razor 不是施展这种“魔法”的好地方?我需要通用的想法,我会写一次,不要在每个 Controller 中重现它。
最佳答案
我建议您在 Controller 中处理此类工作。创建一个 View 模型,您可以在其中放置需要翻译的字段的翻译文本,并在 Controller 中填充 View 模型。
我认为 MVC View 不会引发任何事件。我试图 Hook 这些类型的事件以测量页面呈现时间,但找不到任何此类 Hook 。
关于c# - "Lazy"MVC5 Razor 执行 - ASP.NET(优化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378345/