在调试visualstudio2010mvc2解决方案时,我注意到一些我不一定预料到的事情,这让我觉得效率低下。当我查看主页时,IntelliTrace显示在解析部分视图时抛出并捕获了许多异常。
我有这样调用局部视图的代码:
<% Html.RenderPartial("FiltersAvailablePartialView", Model.AvailableFilters); %>
意见
--&燃气轮机;主页.aspx
加载页面时,我在IntelliTrace中看到的是,抛出并捕获了以下异常:
捕获:“文件”/MyApp/Views/Home/Filters可用partialview.aspx'不存在。'
捕获:“文件”/MyApp/Views/Home/Filters可用partialview.ascx'不存在。'
抛出:“文件”/MyApp/Views/Shared/Filters可用partialview.aspx'不存在。'
捕获:“文件”/MyApp/Views/Shared/Filters可用partialview.aspx'不存在。'
因此,.Net framework似乎正在使用昂贵的try/catch方法来解析视图--首先在主文件夹中查找.aspx视图,然后在主文件夹中查找.ascx视图,然后在共享文件夹中查找.aspx视图,然后在共享文件夹中查找.ascx视图。因此,虽然它最终会找到部分视图,并且页面呈现没有任何错误,但这似乎是一种昂贵的方法(捕捉异常)来查找视图。