代码之家  ›  专栏  ›  技术社区  ›  Shawn

MVC2局部视图在解析视图路径时引发/捕获异常

  •  0
  • Shawn  · 技术社区  · 14 年前

    在调试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视图。因此,虽然它最终会找到部分视图,并且页面呈现没有任何错误,但这似乎是一种昂贵的方法(捕捉异常)来查找视图。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Craig Stuntz    14 年前

    如果在发布模式下编译,这种情况只发生一次。如果在调试模式下编译,则每个请求都会发生这种情况。