使用Ninject从另一个项目加载局部视图

时间:2012-06-12 14:24:58

标签: asp.net-mvc user-controls ninject

好的,所以我有一些UserControls,我试图从另一个MVC项目加载。我已将UserControls项目添加到Map Route参数中,因此它“应该”在那里查看。

我开始在两个项目中使用Ninject,但它回来时出现以下错误:

  

找不到部分视图'UserDetails'或没有查看引擎   支持搜索的位置。

如果我从userControls项目中删除Ninject内容,它会加载正确的控制器方法但由于要求ninject访问模型而失败。

有没有办法让Ninject保留在第二个项目中,或者在第二个项目中使用第一个项目的绑定?

更新

我在ASP.NET MVC中有两个应用程序,它们是同一解决方案中的不同项目。我在两个项目中使用Ninject。我正在尝试使用

将一个项目的局部视图加载到另一个项目中
@{ Html.RenderAction("UserDetails", "UserDetails", ...}

当我这样做并在UserDetails控制器的构造函数上放置一个断点时,它会被击中。构造函数具有以下代码行:

 _guestDetailsField = guestDetailsField;
 _guest = guest;
 _bookingSelection = bookingSelection;

当我调试过去的时候,我得到一个“No Source Available”页面,当我继续时,页面加载了上面给出的错误信息。

1 个答案:

答案 0 :(得分:1)

您无法跨应用程序共享视图。事实上你可以,但你必须编写一个自定义virtual path provider,这可能是相当多的工作。例如,您可以查看following article,它说明了一个自定义提供程序,它允许将Razor视图嵌入到单独的程序集中,并在多个MVC应用程序中重用它们。