1

閱讀了關於這個問題的幾篇文章後,我還沒有找到我的問題的答案。我有一個MVC 3應用程序,並添加了一個區域。一切都很好,直到我嘗試從區域內的控制器返回視圖。從控制器返回視圖區域不工作

我可以成功發佈到控制器保存方法,但在簡單地返回視圖(返回查看())我得到以下幾點:

視圖「保存」或它的主人沒有被發現或沒有視圖引擎支持搜索到的位置。以下地點被搜查:

~/Areas/Test/Views/Default1/Save.aspx 
~/Areas/Test/Views/Default1/Save.ascx 
~/Areas/Test/Views/Shared/Save.aspx 
~/Areas/Test/Views/Shared/Save.ascx 
... 

這似乎很基本,不知道爲什麼我遇到了這麼多麻煩。

伊夫使用菲爾哈克的RouteDebugger(http://nuget.org/packages/routedebugger)和所有路線工作作爲設置...

+0

我注意到你」重新使用區域。您確定Save.xxxx文件在區域視圖文件夾中,而不在父應用程序的區域文件夾中嗎?很明顯,路由沒有任何問題,或者你不會得到無法找到查看錯誤(它必須讓控制器返回視圖,這意味着路由工作) – 2012-04-06 17:30:35

回答

1

MVC期待(由公約)的圖(具有相同名稱作爲您的操作名稱在任何一個文件夾中(默認情況下,但您可以覆蓋此),您應該在任何文件夾中都有視圖,這就是MVC約定,因此請將您的視圖添加到該文件夾​​中。它通過右鍵單擊Return View() statmenet在你的操作方法,並選擇Add View選項,它會自動添加一個視圖。

enter image description here

或者您可以右鍵單擊Areas/Test/Views/Default1文件夾,然後選擇添加視圖並使用與您的操作方法相同的名稱進行保存。如果你想將它比動作名稱的不同的充名稱保存,你可以使用這樣

return View("MyOtherViewName"); 

假設你添加了一個MyOtherViewName.cshtml如您在Areas/Test/Views/Default1文件夾視圖中查看方法

相關問題