2012-11-02 52 views
2

我第一次遇到MVC。 我有地區「管理」和控制器在那裏「新聞」與行動「列表」。ASP.NET MVC3區域動作視圖位置

在調試我得到了斷點

public ActionResult List() 
{ 
    return View(); // Breakpoint 
} 

和我到達那裏

但引擎找不到視圖 「列表」

我得到錯誤:

The view 'List' or its master was not found or no view engine supports the searched locations. The following locations were searched: 
~/Views/News/List.cshtml 
~/Views/News/List.vbhtml 
~/Views/Shared/List.cshtml 
~/Views/Shared/List.vbhtml 

查看退出in location Areas/Administation/News/List.cshtml

爲什麼Razor不會將區域名粘貼到視圖視圖位置?

UPDATE:

我找到了解決辦法: ASP.NET MVC Default routes accessible via area routes

Route route = Routes.MapRoute(name, url, defaults, constraints, namespaces); 
route.DataTokens["area"] = AreaName; 

回答

0

ASP.NET MVC期望你有相應的動作匹配的觀點,當你調用控制器中的View()方法。所以基本上它告訴你,你必須在項目的Views/SharedViews/News/文件夾中有一個名爲List.cshtml(或List.vbhtml)的文件。 (你的控制器被稱爲NewsController按照慣例該視圖搜索上的名稱,您可以去http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3,看看它是如何工作。

領域是一個MVC功能來組織你的應用程序代碼,但你可能缺少一些Read this欲瞭解更多信息,請聯繫

+0

我經常使用區域,但我怎麼說這種行爲對我來說是新的,我不知道問題出在哪裏。 –