我們剛買了一臺新的Windows 2008 R2服務器,我想設置IIS 7.5中的一個MVC 3位點上的Razor視圖引擎。訪問默認路由時出現奇怪的錯誤。佈局的頁面「{}路徑」找不到
佈局頁 「〜/查看/共享/ _Layout.cshtml」 可能0不是在以下路徑找到: 「〜/查看/共享/ _Layout.cshtml」。
這很奇怪,因爲我明確地/views/home/index.cshtml
內設置佈局就像這樣:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
我100%肯定的是,/views/shared/_layout.cshtml
存在於文件系統。這是一個截圖。
如果我從視圖中刪除Layout = "~/Views/Shared/_Layout.cshtml";
,頁面會呈現出/home/index.cshtml
內容全部由自己(而不_Layout.cshtml
任何代碼)。我也嘗試使用_ViewStart.cshtml
來設置佈局。
誰知道爲什麼會MVC不能夠「找到」佈局文件?在Visual Studio的內置Web服務器上運行時,該網站可以很好地工作。
這裏是我的堆棧跟蹤:
[HttpException (0x80004005): The layout page "~/Views/Shared/_Layout.cshtml" could not be found at the following path: "~/Views/Shared/_Layout.cshtml".]
System.Web.WebPages.WebPageExecutingBase.NormalizeLayoutPagePath(String layoutPage) +204956
System.Web.WebPages.WebPageBase.PopContext() +150
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +384
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +33
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +784900
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371
丁丁丁!謝謝。 – jessegavin 2011-05-27 19:12:49
lolz,沒有問題。 ;-) – 2011-05-27 19:17:55
我沒有搜索/共享視圖文件夾,想法? – Maslow 2012-12-11 16:24:37