查看目錄的命名和文件命名非常重要,因爲ASP.NET MVC框架對它們做了某些假設。如果你不符合這些假設,那麼你必須編寫代碼讓框架知道你在做什麼。一般來說,除非你有充分理由不遵守,否則你應該遵守這些假設。
讓我們看看最簡單的可能控制器操作:
public ActionResult NotAuthorized()
{
return View();
}
因爲沒有視圖名稱已在調用指定查看(),該框架將推定視圖文件名將是一樣的行動名稱。該框架有一個名爲ViewEngine的類型,它將提供擴展。默認的ViewEngine是WebFormViewEngine,它將使用該名稱並向它附加一個.aspx。所以在這種情況下,完整的文件名將是NotAuthorized.aspx。
但是在哪個文件夾中會找到該文件?再次,ViewEngine提供這些信息。隨着WebFormViewEngine,它將在兩個文件夾:〜/查看/共享和〜/查看/ {控制器}
所以,如果你的控制器被稱爲的AccountController,它看起來在〜/查看/帳戶
但有可能是你不想遵守這些規則的時候。例如,兩個不同的動作可能會返回相同的視圖(使用不同的模型或其他東西)。在這種情況下,如果你在你的行動明確指定視圖名稱:
public ActionResult NotAuthorized()
{
return View("Foo");
}
注意與WebFormViewEngine,在「視圖名稱」通常是相同的文件名,擴展名少,但框架不需要其他視圖引擎。
同樣,您可能也有理由希望您的應用程序查找視圖和非默認文件夾。你可以通過創建你自己的ViewEngine來做到這一點。我在this blog post中展示了這種技術,但是類型名稱是不同的,因爲它是爲較早版本的框架編寫的。然而,基本的想法仍然是一樣的。
視圖中的文件夾可以包含子文件夾嗎?如果是這樣,主計長如何接觸他們?例如... Admin/Profile/Edit/1 – 2009-02-10 16:46:28