c# - "Lazy"MVC5 Razor 执行 - ASP.NET(优化)

标签 c# asp.net asp.net-mvc vb.net razor

我们编写了 razor 扩展方法以在 vbhtml View 中使用它,它可以翻译静态的、非列表的、非生成的元素,即标题、静态导航元素等:

<h1>@Html.GetTagText("aaa"(real string), cultureCode, translationContext)</h1>

有了这个想法,我们每次调用此方法时都会生成对数据库的 X 次调用。

问题:Razor 引擎是否在转换之前和转换之后引发任何事件,或者 ASP.NET 页面生命周期(渲染前、渲染后)中的某种入口点,这将使我们能够:

  1. 收集所有 getTagText 调用列表
  2. 做剩下的剃须工作
  3. 在一次 DB 拍摄中返回所有翻译
  4. 将正确的翻译放入/替换到正确的位置

或者也许我的想法完全错误, Razor 不是施展这种“魔法”的好地方?我需要通用的想法,我会写一次,不要在每个 Controller 中重现它。

最佳答案

我建议您在 Controller 中处理此类工作。创建一个 View 模型,您可以在其中放置需要翻译的字段的翻译文本,并在 Controller 中填充 View 模型。

我认为 MVC View 不会引发任何事件。我试图 Hook 这些类型的事件以测量页面呈现时间,但找不到任何此类 Hook 。

关于c# - "Lazy"MVC5 Razor 执行 - ASP.NET(优化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378345/

相关文章:

c# - FileOptions.Asynchronous 导致 FileStream.BeginRead 阻塞

c# - 该进程无法访问该文件,因为它正被另一个进程 asp.net c# 使用?

c# - 多个相同类型的 Include 语句出现奇怪的 Entity Framework 错误

c# - 如何通过 'ESC' 按键导航到之前访问过的页面。 ASP.NET MVC(C#)

c# - 使用 SimpleMembershipProvider 更新自定义用户配置文件字段?

javascript - 将脚本绑定(bind)到单选按钮: Weird Behaviour : Not Binding by Name

c# - WPF:无法在属性元素怪异上设置属性

c# - 将 ObservableCollection 绑定(bind)到 DataGridView

c# - 使用 "mm"说明符格式化月份的 DateTime ToString 问题

c# - HTTP 重定向 302