gpt4 book ai didi

asp.net-mvc - 找到 : DisplayTemplates Speed

转载 作者:行者123 更新时间:2023-12-04 19:14:16 27 4
gpt4 key购买 nike

我在一个新的 MVC4 站点上安装了 Mini-Profiler,并注意到某些 Find: DisplayTemplates 的等待时间很长包括字符串和日期时间。下面是一个例子。在另一个问题中,Sam Saffron 谈到了 find 步骤

On subsequent runs it is lightning fast (unless you have something really bad going on)


但是在每个页面加载时都会发生以下情况:
http://localhost:80/SLS.Site/s/hogwarts/lunch...     2.6    +0.0
Check School Permissions 2.4 +2.0 1 sql 0.9
Controller: SchoolAdmin.LunchGroupsController... 4.0 +4.5
Find: Index 0.4 +8.6
Render : Index 70.0 +9.1 2 sql 13.0
Controller: SchoolAdmin.LunchGroupsController... 2.6 +12.3
Find: BuildingTree 0.4 +14.9
Render partial: BuildingTree 4.4 +15.4 1 sql 3.2
Controller: SchoolAdmin.LunchGroupsController... 3.3 +20.2
Find: Teachers 0.6 +23.6
Render partial: Teachers 4.3 +24.3 1 sql 2.4
Find: DisplayTemplates/String 409.3 +31.9
Render partial: _UserContext 0.0 +441.3
Find: _LoginPartial 1.2 +441.4
Render partial: _LoginPartial 0.2 +442.6
3.9 % in sql
有什么想法吗?
编辑
我设置了 4 个区域,因此我认为它正在遍历所有目录以寻找匹配项,因此我删除了其中 2 个区域并具有相同的行为。

最佳答案

我遇到了完全相同的问题......经过一番搜索后,我发现我正在使用:
@DisplayFor(x => x.StringProperty);
仔细想想,并通过自己制作一些模板了解了所有 DisplayFor/EditorFor 方法是如何工作的,这没有任何意义。

(对 DisplayFor/EditorFor 工作原理的一些解释)

当使用 DisplayFor/Editor for 时,MVC 得到 type对象,然后搜索 Views/ControllerName/DisplayTemplates与该类型同名的 View 的目录,在本例中,它正在搜索 Views/ControllerName/DisplayTemplates/String.cshtml .由于它不存在,它也在 Shared/DisplayTemplates 中做同样的事情。 views 目录,同样,它不会存在。

(这下一点是猜测)

我认为,因为它找不到相关的显示/编辑器模板,它然后在对象上执行 ToString() 作为故障转移。

由于无论如何您都只显示 String 类型,因此不使用 DisplayFor(x => StringProperty) 是有意义的。只需使用 @Model.StringProperty ,这不会导致 MVC 搜索 DisplayTemplate ,然后将其呈现为字符串,无论如何它都会这样做。

关于asp.net-mvc - 找到 : DisplayTemplates Speed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758338/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com