Asp.net-Mvc
如何在不同的控制器中管理 MVC 區域和 RenderAction?
我剛剛在我的項目中添加了一個新的管理區域,因為它開始變得相當大,我想保持它的結構。
我有一個 _ViewStart.cshtml 視圖,它設置了一個共享佈局頁面以包含一個菜單和一個帶有一些使用者資訊的部分。由於我的區域頁面上沒有添加此文件,因此我也將 _ViewStart 文件添加到了我的區域。
該文件將佈局設置為“~/Views/Shared/_Layout.cshtml”,它位於我的管理區域之外。但是,_Layout 文件包含一個**RenderAction()**方法,該方法呼叫控制器上的 Child 操作方法進行渲染。問題是該區域似乎沒有此控制器的可見性,因此引發以下異常:
The controller for path '/Admin/LeadOrigin' was not found or does not implement IController.它發生的地方在這裡:
Line 70: <div id="logindisplay"> Line 71: @{ Line 72: Html.RenderAction("UserInfo", "Account"); Line 73: } Line 74: </div>上面的 RenderAction() 工作正常,因為 Account 控制器在視圖的範圍內,而在 Admin 區域,它似乎沒有這個控制器的範圍。
任何想法如何解決這個問題?
您可以將區域指定為 RenderAction 在您的情況下作為第三個參數的 RouteValueDictionary(或只是路由值的對象)的一部分:
Html.RenderAction("UserInfo", "Account", new { area = "" });這是假設 Account 控制器位於根區域。