asp.net-mvc – 动态加载的程序集中的强类型Razor视图不会在运行
发布时间:2020-12-16 09:59:52 所属栏目:asp.Net 来源:网络整理
导读:我在一个动态加载MEF的程序集中有一个MVC3区域. 如果我使用具有强类型视图的Webforms视图引擎,一切正常. 如果我使用带有动态模型的Razor视图引擎,它也可以正常工作. 但是如果我使用强类型Razor视图,则视图编译在运行时会失败. 问题是动态加载的程序集不在传
我在一个动态加载MEF的程序集中有一个MVC3区域.
如果我使用具有强类型视图的Webforms视图引擎,一切正常. 如果我使用带有动态模型的Razor视图引擎,它也可以正常工作. 但是如果我使用强类型Razor视图,则视图编译在运行时会失败. 问题是动态加载的程序集不在传递给C#编译器的引用程序集列表中. 生成的C#代码如下所示: namespace ASP { using System; /* Other namespaces */ public class _Page_MyApp_Views_Home_Index_cshtml : System.Web.Mvc.WebViewPage<MyApp.ViewModels.Search.IndexViewModel> { /* Generated code */ } } 这是错误消息: Compiler Error Message: CS0246: The type or namespace name 'MyApp' could not be found (are you missing a using directive or an assembly reference?) 您是否知道为什么这适用于Webforms视图引擎但不适用于Razor? 谢谢 解决方法
你从哪里装你的装配?通常(如我的博客
here所述)如果您没有从/ bin目录加载程序集,则需要确保程序集的路径是可发现的.我以前这样做的方法是使用AppDomain.CurrentDomain.AppendPrivatePath(path).虽然这是一种弃用的方法,但您不是自己构建AppDomain(IIS工作进程在托管您的应用程序时执行此操作),您仍然可以使用它来更新当前域以在此处搜索.现在,当一个程序集被解析时,如果它不是GAC,AppDomain将搜索它的程序集的私有路径.
至于为什么它适用于WebForms而不是Razor,我们需要更多地了解您的项目架构. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 在Razor View模型中添加一个类到Ajax.Beg
- asp.net-mvc – MVC中的SSRS Reportviewer,通过自动调整ifr
- asp.net – 使用ClientId和ClientSecret进行Web API授权
- asp.net – 为什么aspx文件返回404(“无法找到该页面”)
- asp.net – 转发器控件中的单选按钮列表
- asp.net-mvc – 基于MVC中应用程序的语言选择对必需字段验证
- asp.net – 在打开silverlight项目之前,您需要安装最新的Si
- asp.net-mvc – LINQ to Entities无法识别方法异常
- Asp.net C的PDF或其他“报告查看器”选项#
- asp.net-mvc – 如何使用Autofac将控制器的ModelState传递给
推荐文章
站长推荐
- 何时在ASP.NET MVC 2应用程序中提交NHibernate事
- asp.net – MVC3 Action作为一个简单的Web服务
- asp.net – specflow的.msi安装程序和它的nuget包
- asp.net-mvc – 表达式树可能不包含动态操作 –
- asp.net-mvc – 用于电话号码或社会安全号码的Di
- asp.net – 将JSON发布到Controller
- asp.net-mvc – Kendoui MVC EditorTemplateName
- asp.net-mvc – 没有其他用户的DB上的DbUpdateCo
- asp.net – 命名空间’x’已包含’y’的定义
- asp.net – PageMethod和URl重写
热点阅读