簡體   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