繁体   English   中英

ASP.NET MVC 2.0是否使用流控制异常?

[英]Does ASP.NET MVC 2.0 use exceptions for flow control?

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

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

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

IIRC使用流量控制的例外是邪恶的,并不酷。 那么,我做错了什么,或者MVC不再酷了?

注意:让IDE停止所有引发的异常会使调试更容易,我通常会将其保留。 这就是我从RenderPartial获得异常的方式。

MVC 2.0使用控制流异常并不是事实。

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

作为旁注,MVC 3将使用.NET 4中添加的新API,因此这不应该成为问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM