我應客戶的請求構建了一個包含ASP.NET Web窗體的大型站點。問題是,我發現ASP.NET Web表單有點不直觀(我個人的口味)。所以我想要做的就是使用MVC,但我不能指望我的客戶爲完成重寫而付出時間(他也沒有時間)。我可以使用ASP.NET MVC與常規的ASP.NET Web窗體
所以我問的是,我可以同時使用ASP.NET MVC和Web窗體,並逐漸使用MVC越來越多?有小費嗎?
我應客戶的請求構建了一個包含ASP.NET Web窗體的大型站點。問題是,我發現ASP.NET Web表單有點不直觀(我個人的口味)。所以我想要做的就是使用MVC,但我不能指望我的客戶爲完成重寫而付出時間(他也沒有時間)。我可以使用ASP.NET MVC與常規的ASP.NET Web窗體
所以我問的是,我可以同時使用ASP.NET MVC和Web窗體,並逐漸使用MVC越來越多?有小費嗎?
更新2014:
的Visual Studio 2013使我們更接近一個ASP.NET。 沒有MVC 項目類型或Web窗體項目,只有ASP.NET。如果您想要混合Web窗體和Web API,或者MVC和SignalR,請繼續! 您受到鼓勵和支持。新功能和功能是 與NuGet帶來沒有打破現有的應用程序。
所以Web Forms和MVC(已幾乎被無縫地工作)的混合,現在鼓勵和邊界模糊。我想MS認識到需要允許項目慢慢遷移到MVC,或者根據需要遷移部分,並獲得兩全其美。
MVC項目:
已經使用MVC的Web窗體相當長的一段時間肯定是可能的,一個很好的選擇。通過良好的體系結構設計(例如DDD(服務存儲庫,依賴注入等)),可以將新功能和頁面輕鬆添加到MVC頁面中,並且舊的功能可以保持原樣。在一個webforms頁面中組合MVC也可以正常工作,儘管JS驗證可能存在一些小問題。我會極力推薦它。
從創建一個MVC應用程序(5個atm)開始,然後在啓動並運行基本模板後,在文件夾內添加舊的webforms。這樣您就可以正確地獲得新的MVC設置,並保持向後兼容性。
使用MVC一個web表單內.aspx頁:
下面的文本旨在演示如何從webforms頁面內部使用MVC。 (例如,在MyPage.aspx中)您可以在webforms中使用MVC動作/視圖。 ajax來填充頁面或某些div的一部分。
包含MVC的Webforms工作正常,至少在HTML中添加ajax調用以填充MVC的div時。
裏面一個.aspx
..html & webforms code
<div id="fillMeFromMVC">
<script type="text/javascript">
$.ajax(... call an MVC action to fill
the "fillMeFromMVC" div that this script sits inside of);
</script>
</div>
這將填補通過MVC的頁面的一部分,你可以清晰地做你的MVC,而不用擔心什麼在網絡表單完成。
的WebForms與MVC:但是這裏
通過這一點,你可能很瞭解這兩種技術之間的差異,是他們之間的一個小比較。他們都有自己的目的和用途。我個人比較喜歡MVC,因爲我需要做的事情,但這可能取決於你想要達到的目標。
如果您使用例如在他們身後的SOA和Web頁面都可以使用相同的業務邏輯。 當代碼全部位於頁面後面並與UI相關聯時(無需分離關注點),Webforms可能是有害的。有了可靠的體系結構和一些可以減少的努力。
延伸閱讀:
Webforms vs. MVC (Code project)
Difference betweeen ASP.NET WebForms and ASP.NET MVC (a blog)
我認爲你是錯的,因爲MVC`RouteCollection`有這個設置叫做'RouteExistingFiles`這是'默認FALSE`。這意味着如果您訪問現有的aspx頁面(並且它不駐留在** Views **文件夾內(本地web.config阻止對文件的直接請求訪問),它應該作爲日常WebForm處理。 – 2012-05-09 08:40:18