【发布时间】:2015-11-29 10:46:07
【问题描述】:
我们编写了 razor 扩展方法来在 vbhtml 视图中使用它,它可以翻译静态、非列表、非生成元素,即标题、静态导航元素等:
<h1>@Html.GetTagText("aaa"(real string), cultureCode, translationContext)</h1>
有了这个想法,我们每次调用这个方法时都会对 DB 产生 X 次调用。
问题:Razor 引擎在转换之前和转换之后是否引发了任何事件,或者 ASP.NET 页面生命周期(预渲染、渲染后)中的某种入口点,这将使我们能够:
- 收集所有 getTagText 调用以列出
- 做剩下的剃须刀工作
- 在一次数据库拍摄中归还所有翻译
- 将正确的翻译放入/替换到正确的位置
或者我的想法完全错误,剃须刀不是做那种“魔法”的好地方?我需要通用的想法,我会写一次,不要在每个控制器中重现它。
【问题讨论】:
-
旁注:从视图中进行慢速 I/O 绑定同步调用通常是个坏主意……而且在 ASP.NET MVC6 (2016) 之前,您不能从视图中进行异步调用 -请参阅MVC6 - view components 上的信息。
标签: c# asp.net asp.net-mvc vb.net razor