我刚刚添加了一个新的管理区域到我的项目,因为它开始变得相当大,我想保持结构。
我有一个_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区域,似乎它没有此控制器的范围。
任何想法如何绕过这个问题?
解决方法
您可以将区域指定为RouteValueDictionary(或只是路由值的对象)的一部分,RenderAction将其用作您的案例中的第三个参数:
Html.RenderAction("UserInfo","Account",new { area = "" });
这是假设帐户控制器在根区域。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。