【问题标题】:Loading a partial view from another project using Ninject使用 Ninject 从另一个项目加载局部视图
【发布时间】:2012-06-12 14:24:58
【问题描述】:

好的,所以我有一些要从另一个 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;

当我调试过去时,我得到一个“无可用源”页面,当我继续时,页面加载了上面给出的错误消息。

【问题讨论】:

  • 当ninject在usercontrols项目中时,我应该添加控制器的构造函数(以抽象模型实例作为参数),所以它仍然找到正确的位置。
  • 我第三次阅读您的问题,但仍然不明白其中的任何内容。放弃。希望您能提供更多详细信息。
  • 好吧,也许解释一下你不明白的地方会有所帮助。但我会添加更多信息。

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


【解决方案1】:

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

【讨论】:

  • 但是当我从“UserControls”项目中取出 ninject 的东西并通过它进行调试时它正在工作,它只是因为我无法使用 ninject 访问数据而崩溃。
猜你喜欢
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
相关资源
最近更新 更多