首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主项目中的mvc区域调用控制器

主项目中的mvc区域调用控制器
EN

Stack Overflow用户
提问于 2013-08-03 01:27:47
回答 2查看 2.6K关注 0票数 0

我有一个主mvc项目和一个区域

该区域使用主项目中的共享_Layout.cshtml。在共享导航中,有一个RenderPartial("GlobalNavigation",“导航”),它调用主项目中的控制器“导航”。所以我得到了这个错误

代码语言:javascript
复制
The IControllerFactory 'abc.NinjectControllerFactory' did not return a controller for the name 'Navigation'.

我猜这是因为视图在区域中调用了控制器“导航”,但是控制器“导航”在主项目中。我该如何解决这个问题呢?

_Layout.cshtml

代码语言:javascript
复制
<div id="global-nav">
    @{ Html.RenderAction("GlobalNavigation", "Navigation"); }
</div>
EN

回答 2

Stack Overflow用户

发布于 2013-08-03 01:51:46

试试这个:

代码语言:javascript
复制
<div id="global-nav">
    @{ Html.RenderAction("GlobalNavigation", "Navigation", new { area = "" }); }
</div>
票数 2
EN

Stack Overflow用户

发布于 2013-08-03 01:56:34

如果你只是加载一个分部的,为什么你需要控制器参数?在控制器方法中是否构建了逻辑?

试试看:

代码语言:javascript
复制
@{ Html.RenderAction("GlobalNavigation"); }

否则,我建议在你的项目中使用HTML助手来构建我们的主导航。

例如:

PROJECT.Web.ExtensionMethods.HtmlExtensions中的Helper

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;

namespace OHTP.Web.ExtensionMethods
{
    public static class HtmlExtensions
    {
        public static MvcHtmlString NavMenuLink(this HtmlHelper helper, string linkText, string actionName, string controlName, string activeClassName)
        {
            if (helper.ViewContext.RouteData.Values["action"].ToString() == actionName &&
                helper.ViewContext.RouteData.Values["controller"].ToString() == controlName)
            {
                var menuLink = helper.ActionLink(linkText, actionName, new { Controller = controlName }, new {Class = activeClassName}); 
                return menuLink;
            }

            return helper.ActionLink(linkText, actionName, controlName);
        }
    }
}

然后在partial中调用它

代码语言:javascript
复制
<%= Html.NavMenuLink("Copy to display", "ControllerName", "Link", "class") %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18022806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档