2010-07-19 58 views
0

我有一個現有的ASP.Net應用程序,我試圖介紹MVC2。將MVC引入ASP.Net - 404錯誤

希望我能記得的步驟,但我所做的是以下幾點:

  1. 創建一個虛擬MVC2項目。
  2. 比較併合並.csproj,導致Add Item命令顯示MVC2項目。
  3. 比較和合並在web.config
  4. 比較和合並了的global.asax.cs
  5. 加模型,視圖和控制器目錄
  6. 新增HostController與索引操作和Index.aspx的(沒有邏輯)
  7. 修正路線做出/主機/索引默認

所以現在,當我通過根地址http://localhost/MyApp所有的工作訪問應用程序。

但是,當我訪問http://localhost/MyApp/Host/Index時,出現404錯誤。對於我創建的任何控制器/操作,我都會得到相同的結果。我能讓他們出現的唯一方法是使用路由配置中的默認值。我安裝了Phill Haack's route debugger,它什麼都不做。顯然,我的路由有一些問題,但我無法弄清楚。

任何想法,我已經錯過了?

+0

有趣的扭曲。如果我使用http://localhost/MyApp/Host/Index/default.aspx它工作正常。 – 2010-07-19 21:55:31

+0

事實上,將任何.aspx文件添加到URL的末尾使其工作。即使它不存在。 – 2010-07-19 22:00:35

回答

0

Bah ...事實證明,這是與IIS 5.1和MVC路由。

我通過在我的應用程序中使用以下路徑解決了它(請注意.aspx擴展名)。

routes.MapRoute("Root", "", new { controller = "Host", action = "Index" }); 
routes.MapRoute("Default", "{controller}/{action}.aspx", new { controller = "Host", action = "Index" }); 

意味着我不能有乾淨的路線,但至少它的工作原理。