ASP.NET的代碼隱藏文件
ASP.NET MVC默認(rèn)仍然使用WebFormsViewEngine。當(dāng)使用Visual Studio向ASP.NET MVC應(yīng)用程序增加一個(gè)WebForms視圖時(shí)會(huì)自動(dòng)增加一個(gè)代碼隱藏文件和一個(gè)設(shè)計(jì)器文件。許多人認(rèn)為代碼隱藏文件已經(jīng)被廢棄了,它們的用法頗令人困惑,因?yàn)殚_發(fā)人員傾向于使用像傳統(tǒng)的合而為一的ASP.NET Web窗體那樣的視圖。
Steve Smith更進(jìn)一步的表明ASP.NET MVC Codebehind文件的壞處,因?yàn)樗麄円T開發(fā)人員將邏輯添加到視圖上,視圖在設(shè)計(jì)上應(yīng)當(dāng)保持“啞的”。
代碼隱藏文件是一個(gè)誘惑。對(duì)于不熟悉ASP.NET MVC (ASP.NET MVC還不到一年時(shí)間而且還沒有發(fā)布)但是有Web窗體開發(fā)背景(大多數(shù))的開發(fā)人員,他們始終有一個(gè)將代碼寫入隱藏代碼文件傾向。這會(huì)使得在視圖里的邏輯難以測(cè)試,最壞的可能是甚至在代碼隱藏文件中包含的邏輯直接調(diào)用數(shù)據(jù)庫或者是web service,以致完全繞過模型同視圖的分離。
Steve解釋了在某種情況下代碼隱藏文件是一個(gè)不好但卻必不可少的東西,例如你想在一個(gè)強(qiáng)類型的視圖通過強(qiáng)類型方式引用模型(Model)。有寫人認(rèn)為隱藏代碼頁也可用來存儲(chǔ)一些視圖邏輯,而其他方式可能會(huì)弄亂ASPX文件。***但并不是最不重要的一點(diǎn)是他們?yōu)榱嗽贏SPX文件上獲得智能提示技術(shù)的支持。至于***個(gè)問題,Tim Barcz演示了如何使用沒有代碼隱藏使用強(qiáng)類型的ViewData,通過合并泛型的CLR表示法來取代C#或者VB的表示法。
【編輯推薦】