ASP.NET MVC Tip #17 – 如何運行一個ASP.NET MVC應用程式
ASP.NET MVC Tip #17 – How to Run an ASP.NET MVC Application
美語原文:http://weblogs.asp.net/stephenwalther/archive/2008/07/10/asp-net-mvc-tip-17-how-to-run-an-asp-net-mvc-application.aspx
國語翻譯:http://www.cnblogs.com/mike108mvp
譯者註:在下水平有限,翻譯中若有錯誤或不妥之處,歡迎大家批評指正。謝謝。
在這篇文章中,我將解釋在Visual Studio 2008中運行ASP.NET MVC應用程式時與webform不同的設定選項。我推薦你直接用ASP.NET Development Web Server(Visual Studio 2008內建的程式開發伺服器)運行ASP.NET MVC應用程式。
一個ASP.NET MVC應用程式的工作方式與標準的ASP.NET Web Forms應用程式是不同的。當你請求一個URL,可能並沒有對應的.aspx檔案在你的硬碟中。例如,假設你請求下面的URL:
/Product/Index.aspx
沒有理由假定該ASP.NET MVC應用程式套件組合含一個Product檔案夾或者Product檔案夾中包含一個Index.aspx檔案。ASP.NET MVC中的直接選取模組(Routing module)在預設情況下將這個請求映射到一個ProductController的控制器(controller) 中,並用調用ProductController的Index()方法。 然後由Index()方法來決定返回給瀏覽器的視圖(View)(如果存在View的話)的呈現內容。
因此,運行ASP.NET MVC application比運行平常的ASP.NET Web Forms application更複雜。特別是,你並不想在web瀏覽器中開啟當前頁。例如,如果你有一個檔案路徑Views\Home\Index.aspx在Visual Studio 2008中開啟了,接著你按F5鍵來運行你的應用程式,那麼你並不想在web瀏覽器中開啟這個Index.aspx檔案。問題是Views\Home\Index.aspx並不是對應一個真實路徑來顯示Index view。真實路徑看起來很像是/Home/Index.aspx,然而真正的真實路徑是由URL Routing module來決定的,它可以是任何路徑。
設定一個起始頁
你可以通過修改 ASP.NET MVC項目的啟動動作設定來控制你按F5或者Ctl-F5時發生的事情。在解決方案中按右鍵你的項目,選擇Properties菜單選項,選擇Web選項,查看啟動選項(見圖1)。
圖1 - 修改啟動選項
Figure 1 – Modifying Start Options
那兒有兩個部分你可以修改。Start Action部分能夠讓你指定運行應用程式會發生什麼。那些選項是:
· 當前頁 – 能夠讓你運行Visual Studio中當前正在編輯的頁面。
· 特定頁 – 能夠讓你設定運行一個特定頁面。你可以在這裡設定這個頁面,也可以在解決方案的一個頁面中按右鍵,選擇作為啟動頁(Set As Start Page)。
· 啟動外部程式 – 能夠讓你運行一個外部程式。
· 啟動URL – 能夠讓你去請求一個URL。這個選項在你建立一個Web Services應用程式時常常用到。
· 不要開啟一個頁面 – 能夠讓你不做任何事情。
預設情況下,一個ASP.NET MVC application設定為Specific Page這個選項。如果你運行一個ASP.NET MVC application,它將會一直開啟預設頁(路徑是/)。
一個ASP.NET Web Forms application,相比之下,預設設定為Current Page這個選項。如果你有一個特定頁在Visual Studio中開啟了,那麼將運行這個頁。
注意,你可以將ASP.NET MVC Application 的啟動頁改變為一個特定頁。例如,如果當你的應用程式啟動時,你想要請求一個URL路徑 /Product/Show/23,那麼你可以將這個URL輸入這個Specific Page選項的輸入框中。
你也可以修改Servers選項部分。這個部分看起來只是針對 ASP.NET MVC Web Application 和 ASP.NET Web Forms Applications的,而不是針對ASP.NET Web Sites的。在這個部分中最有趣的設定是允許“編輯並繼續”(Edit and Continue)選項。這個設定預設是禁用的。如果你啟用它,那麼你就可以在調試過程中在應用程式中修改代碼。例如,你可以設定一個斷點,運行到斷點處,修改你的代碼,按Continue按鈕繼續,並且新的修改將會馬上生效。
從ASP.NET Development Server運行
Running from the ASP.NET Development Server
我起初是從Brian Henderson那裡得知下面的技巧的。他建議你在工作列的通知區域按右鍵你的ASP.NET Development Server表徵圖,並選擇Open in Web Browser 選項(見圖2)。這個建議是說你開啟一個瀏覽器視窗一次後,在你開發一個網站時一直讓這個視窗保持開啟狀態。
Figure 2 – Running from the ASP.NET Development Web Server
按照這些步驟來操作:
Follow these steps:
(1) 按右鍵你的項目 -> 選擇Properties選項 -> 選擇Web標籤 -> 導航到你的項目啟動項設定中。
(2) 設定啟動設定為Don’t open a page。
(3) 設定Enable Edit and Continue選項為啟用它。
(4) 單擊磁碟片表徵圖儲存你的設定。
當你作了這些設定後,單擊“調試”菜單 -> 單擊“Start Debugging”,或者單擊“調試”菜單 -> 單擊“Start without Debugging”將不會開啟一個新的瀏覽器視窗。當你開始運行你的應用程式後,你可以從ASP.NET Development Server開啟一個新的瀏覽器視窗來查看它(見圖2)。
用這種奇怪的方式來運行你的MVC應用程式有什麼好處呢?主要的好處是你可以讓你的瀏覽器視窗一直開啟一個特定的頁面。你可以讓你的MVC應用程式一直保持開啟(甚至在調試時)。
通常,當你按F5開啟一個新的瀏覽器視窗來運行一個ASP.NET MVC應用程式時,當你要停止調試時你必須關閉瀏覽器視窗。如果你已經導航到一個特定頁,然後當你運行你的應用程式時,你必須每次都要重新開始,然後再導航到原來的特定頁中,這將浪費大量的時間!
相比之下,如果你從ASP.NET Development Server中開啟你的瀏覽器,那麼你可以在你的MVC應用程式中保持開啟你的URL地址。你甚至可以停止你的應用程式,設定新的斷點,並且再次運行你的應用程式而無需關閉瀏覽器視窗。
總結
Summary
在這篇文章中,我解釋了項目選項,運行一個ASP.NET MVC應用程式時你可以設定它。我也推薦你從ASP.NET Development Server中運行你的ASP.NET MVC應用程式,以便於你能夠在運行ASP.NET網站時,保持你的URL地址不變。
In this tip, I explained the project options that you can set for running an ASP.NET MVC application. I also recommended that you run your ASP.NET MVC applications from the ASP.NET Development Server so that you can maintain your location in a running ASP.NET web site.