2014-01-08 82 views
1

我在MVC上總是newb測試和學習模式。MVC視圖間歇加載

我構建了一個TestControllerTest1視圖,並將RouteConfig更改爲default = Test,Index。然而,這樣的作品,...

如果我在TestController Index ActionResult線突破:

return View("~/Views/Test/Test1.cshtml"); 

再繼續,它會顯示我Test1視圖頁面(這是一個新的,簡單的觀點,沒有佈局,寫着「Yow!」在div內)

如果我然後刪除中斷,修改Test1視圖頁面(如添加一個字符到「Yow!」),然後重新運行沒有中斷,我得到一個404錯誤。

如果我重置中斷並重新運行,請打開中斷並繼續,它會顯示更新的Test1視圖。

這一直髮生。

爲什麼要對Test1視圖進行小修改會導致localhost找不到視圖?爲什麼要休息並繼續讓它找到視圖?

+0

我真的不明白你說什麼,但是當你的應用程序啓動時檢查目錄,它開始你在視覺工作室的地方。也許是 –

+0

「rerun」是什麼意思?您正在刷新頁面?還是擊中從VS開始? –

+0

重新運行=停止調試並重新啓動調試。頁面刷新不會改變404。 – wayfarer

回答

1

如果您轉到Web選項卡上的ASP MVC項目的屬性(右鍵單擊項目,選擇屬性),則會出現Start Action部分。默認情況下,選擇當前頁面,這意味着如果你開始用當前打開的視圖進行調試,VS將嘗試導航到該視圖的路徑。

讓我有點解釋:

  • 比方說,你創建一個家庭控制器和 索引視圖,以及典型/控制器/操作/ ID路線的新的MVC項目。如果你有 「當前頁」選擇爲「開始行動」的選項,並與指數視圖中打開啓動 調試,VS會嘗試打開一個URL像 http://localhost:59774/Views/Home/Index.cshtml

  • 但你也知道,那個網址將不會工作,因爲您需要符合在您的MVC項目中定義的路徑
    。例如
    http://localhost:59774/Home/Indexhttp://localhost:59774/將是在家裏控制器

  • 索引操作有效的網址這就是爲什麼當你開始或用視圖中打開你 得到一個404。然而,當你有一個控制器開啓,重新啓動調試,沒有當前頁和VS將嘗試導航到應用程序(如http://localhost:59774/

你只需要改變你的項目的Start Action選項的根,選擇特定頁插件tead並保持空白。這將導致根被打開,與從控制器開始調試時相同。

另外,請記住,您可以對視圖進行這些更改,而無需重新編譯或重新啓動調試。

+0

這是一個很好的解釋。我按照指示正常工作。它提供了一些關於VS如何與MVC協同工作的深入見解。非常感謝! – wayfarer

+0

@wayfarer,我很高興有幫助。請記住,如果它對你有幫助,你可以接受答案:) –