2013-06-18 22 views
1

我是新來的MVC 4和學習MVC 4代碼庫。在微軟的音樂商店教程中,我通過右鍵單擊控制器中的方法並選擇添加視圖來添加視圖。我怎麼知道這個控制器會返回什麼視圖?

這讓我知道哪個視圖與哪個控制器相關聯。

但是在代碼庫中,有一個名爲homecontroller.cs的文件,它帶有一個名爲「index」的方法,它返回一個視圖。我怎麼知道該方法返回的視圖?

[Authorize] 
    public ActionResult Index(bool preserveShowFor = false) 
    { 
     if (User.IsInRole("...")) 
     { 
      return View(new HomeViewModel...); //how do I know what view this returns? 
     } 

回答

4

默認情況下,MVC將查找具有相同的名稱作爲操作結果來看,在這種情況下,指數

你可以通過返回這個代替

new View("MyViewName", new HomeViewModel()) 
+0

謝謝。這解釋了它。 – bernie2436

2

您的代碼將返回的視圖是索引之一。該視圖位於名爲Home的子文件夾中。

如果未指定視圖,則返回與該操作同名的視圖。

+2

這是部分正確的。如果它沒有在Views/Home文件夾中找到名爲Index.aspx或Index.cshtml的視圖(取決於已安裝的視圖引擎),它會搜索Views/Shared文件夾中的相同內容 – Dismissile

0

在這種情況下,它會尋找一個稱爲索引的視圖來匹配方法名稱...... ASP.Net MVC支持很多這樣的約定,但是如果你真的想要,你可以明確地編寫代碼。

0

手動指定右鍵單擊它裏面該方法並點擊「轉到視圖」。它應該位於名爲Home的視圖下的文件夾中。

您也可以通過明確的意見

0

的約定是,它會檢查具有相同的名稱爲您的控制器下查看該文件夾,您的操作的名稱。

所以在這種情況下,Views/Home/Index.aspx

相關問題