在外部程序集中调用MVC控制器/操作

时间:2011-10-23 19:36:58

标签: asp.net-mvc url-routing

我正在尝试调用外部程序集中定义的控制器操作,但应用程序始终返回未找到资源的情况。控制器是微不足道的,看起来像这样:

namespace MyExternal.Controllers
{
    [HandleError]
    public class ProjAdminController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}

然后我更新了路由以包含可选的命名空间:

routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
  new { controller = "Home", action = "Index", id = UrlParameter.Optional },         
  new[] { "MyExternal.Controllers" }
 );

但是,当我尝试调用控制器和操作时,它找不到控制器。我安装了路由调试器,它通过了路由测试,但它没有找到控制器或停在我的断点上。它可能有点小,但我无法弄清楚这一点。我的道歉是这是一个重复。事实证明原始代码在控制器类的命名中有一个错误,但其余代码很好地作为如何执行此操作的示例。

1 个答案:

答案 0 :(得分:1)

IMO您应该在动作调用中添加area参数。它应该包含该控制器的命名空间。