簡體   English   中英

“經典”ASP.NET頁面和Microsoft MVC可以在同一個Web應用程序中共存嗎?

[英]Can “classic” ASP.NET pages and Microsoft MVC coexist in the same web application?

我正在考慮今天晚些時候嘗試使用我們正在啟動的新應用程序的MVC,但我很好奇這是一個全有或全無的事情,或者我是否還可以像2006年那樣使用viewstate和其他拐杖同時舉辦派對...

是的,您可以將Web表單頁面和MVC視圖混合在一個Web應用程序項目中。 如果您已經構建了一個應用程序並且想要將應用程序從webforms遷移到mvc,那么這可能很有用。

您需要確保沒有任何webforms頁面進入標准ASP.NET MVC應用程序的“Views”目錄中。 無法直接通過網址請求“視圖”目錄中的頁面(或視圖)。

如果您從頭開始申請,將兩者混合起來的好處很少。

是。 MVC只是IHttpHandler接口的不同實現,因此經典ASP.NET和ASP.NET MVC頁面可以在同一個應用程序中共存。

正如您可能已經注意到上述答案,是的,這是非常可能的。

我實際上必須在我當前的項目中這樣做。 我能夠獲得批准將MVC添加到我們的應用程序中,但僅限於管理部分(以限制影響當前成員訪問我們網站的風險)。

我遇到的最大問題是將我的網站轉換為Web應用程序,但是一旦完成,事情就非常簡單地將MVC並排添加到我們經典的代碼隱藏網頁中。

對我來說,訣竅是讓我的MVC頁面看起來盡可能與我的代碼隱藏頁面相似,這樣過渡看起來盡可能無縫。

我目前正在開發一個新項目。 雖然我想一路走下MVC路線,但有些項目要求不允許我這樣做。

其中一個要求是從客戶端獲得分組網格。 個人選擇了Telerik Rad-Grid。 雖然他們可能正在支持MVC,但他們還沒有。

所以這意味着我必須有一個混合解決方案。 暫時直到RadGrid完全支持MVC。
在我們處於這個過渡期的過程中,我認為可能會有更多的混合項目,直到第三方控制的支持趕上來。

問候

彌敦道

您需要確保您的MVC路由不與Web窗體頁面沖突,以便對.aspx頁面的請求不會作為參數等路由到控制器操作。

有關如何避免此問題的詳細信息,請參閱Phil Haack撰寫的此博客文章

是的,MVC頁面很可能與asp.net Web表單共存。 我在現有的asp.net應用程序中實現了這一功能,以添加新功能。 我們需要確保引用MVC DLL,為URL路由注冊路由表以及在Web.config文件中配置程序集和命名空間。

如果你將MVC與其他方法混合使用,那么你並沒有真正從中獲益。 MVC的要點是允許你減少耦合並增加內聚力,如果只有一半的代碼正在這樣做,那么另一半不可避免地會限制你的開發周期。

所以,我想雖然有可能,但我認為這不值得。 一路走或者根本不去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM