代码之家  ›  专栏  ›  技术社区  ›  THX-1138

做ASP.NETMVC 2.0是否对流控制使用异常?

  •  3
  • THX-1138  · 技术社区  · 14 年前

    在代码抛出(处理)异常之后,MVC似乎使用异常来测试控件位置。

    <% Html.RenderPartial("LogOnUserControl"); %>
    

    应用程序按预期工作,我可以看到异常在尝试不同位置(视图、共享)时被抛出了几次。其他控件也会发生同样的情况。显然,MVC使用异常来探测文件的不同可能位置。

    那么,是我做错了什么,还是MVC不再酷了?

    RenderPartial .

    2 回复  |  直到 14 年前
        1
  •  3
  •   marcind    14 年前

    MVC2.0对控制流使用异常是不正确的。

    然而,系统.Web.dllv2.0(软件的核心组件)ASP.NET直到.NET 3.5)都有一些低效的API用于从虚拟路径实例化对象。MVC2.0通过缓存视图查找来缓解这个问题。默认情况下,在开发过程中禁用此缓存,以便您所做的更改立即可见,这就是您看到这些异常的原因。在实际的生产服务器上,缓存查找后不会发生这些异常。

    顺便说一下,MVC3将使用.NET4中添加的新API,所以这应该不再是一个问题了。

        2
  •  2
  •   Darin Dimitrov    14 年前

    在发布模式下运行时,会缓存视图位置。