ASP.Net MVC 视图使用由 MEF 加载的模型类型导致视图构建器中的 JIT 编译错误
ASP.Net MVC Views using a model type that is loaded by MEF result in JIT Compile error in the View builder
这被命名为类似于以下问题:ASP.NET MVC: Views using a model type that is loaded by MEF can't be found by the view engine
这与我遇到的问题非常相似。
我正在使用 .NetFx 4.6、MEF 2 和 MVC 4。我有一个单独的 class 项目,其中包含 Mvc 视图、Views 文件夹中的相关配置和视图中引用的导出模型。
视图和相关配置以及生成的 dll 被复制到 MVC 主机项目中的插件文件夹中,并且所有工作正常,除了在运行时编译视图时出现以下错误 CS0234: The type or namespace name 'Central' does not exist in the namespace 'MyCompany' (are you missing an assembly reference?)
当我删除视图中的模型引用时,它会正确加载视图。
当我将 dll 放在主机应用程序的 bin 文件夹中时,它运行良好。
只有将dll放在Plugins文件夹下才会出现此异常
我尝试在 Global.asax Application_Start 的开头使用已弃用的 AppDomain.CurrentDomain.AppendPrivatePath(Path.Combine(HttpRuntime.AppDomainAppPath, "Plugins"));
但这似乎没有帮助。
引用的问题有@BradWilson 和@MatthewAbbott 的评论,他们都提到了 dll 在 bin 文件夹中的位置。
谁能告诉我如何做到这一点,以便导入的 dll 可以保留在插件文件夹中,而不必将其放入 bin 文件夹并导致 MVC 主机重置?
最后我使用了@Ilija Dimov's comment and found here中引用的解决方案。
感谢@Ilija Dimov
当涉及到 MEF 时,我认为我应该分享我在处理强类型视图问题方面的经验。
如果创建插件,最好不要使用它们。使用 knockout js 等其他前端工具对视图进行数据绑定,这意味着您根本不会使用 razor 代码,但它仍然为您提供了一个很好的框架来构建插件。要进一步补充您的插件,请使用 ko 组件,它同时促进了模块化和可重用性。
这被命名为类似于以下问题:ASP.NET MVC: Views using a model type that is loaded by MEF can't be found by the view engine
这与我遇到的问题非常相似。 我正在使用 .NetFx 4.6、MEF 2 和 MVC 4。我有一个单独的 class 项目,其中包含 Mvc 视图、Views 文件夹中的相关配置和视图中引用的导出模型。
视图和相关配置以及生成的 dll 被复制到 MVC 主机项目中的插件文件夹中,并且所有工作正常,除了在运行时编译视图时出现以下错误 CS0234: The type or namespace name 'Central' does not exist in the namespace 'MyCompany' (are you missing an assembly reference?)
当我删除视图中的模型引用时,它会正确加载视图。
当我将 dll 放在主机应用程序的 bin 文件夹中时,它运行良好。
只有将dll放在Plugins文件夹下才会出现此异常
我尝试在 Global.asax Application_Start 的开头使用已弃用的 AppDomain.CurrentDomain.AppendPrivatePath(Path.Combine(HttpRuntime.AppDomainAppPath, "Plugins"));
但这似乎没有帮助。
引用的问题有@BradWilson 和@MatthewAbbott 的评论,他们都提到了 dll 在 bin 文件夹中的位置。
谁能告诉我如何做到这一点,以便导入的 dll 可以保留在插件文件夹中,而不必将其放入 bin 文件夹并导致 MVC 主机重置?
最后我使用了@Ilija Dimov's comment and found here中引用的解决方案。
感谢@Ilija Dimov
当涉及到 MEF 时,我认为我应该分享我在处理强类型视图问题方面的经验。 如果创建插件,最好不要使用它们。使用 knockout js 等其他前端工具对视图进行数据绑定,这意味着您根本不会使用 razor 代码,但它仍然为您提供了一个很好的框架来构建插件。要进一步补充您的插件,请使用 ko 组件,它同时促进了模块化和可重用性。