.net - 将强类型 Razor 视图与在运行时加载的视图模型一起使用
问题描述
我希望能够在运行时加载模型和控制器的强类型 Razor 视图。程序集在应用程序启动期间ConfigureServices
通过IApplicationFeatureProvider
.
services.AddMvc()
.ConfigureApplicationPartManager(apm => apm.FeatureProviders.Add(new DynamicControllerFeatureProvider()));
模型类型为 的dynamic
视图可以正常编译,但任何强类型的 Razor 视图都无法编译。
命名空间“TestProject”中不存在类型或命名空间名称“TestModules”(您是否缺少程序集引用?)
如何让 Razor 引擎知道动态加载的程序集,以便我可以使用强类型视图?似乎使用自定义RazorBuildProvider
会起作用,但是有更好的方法吗?
解决方案
Razor 视图默认预编译。由于必要的程序集直到运行时才可用,因此不可能进行预编译。您需要在您的 csproj 中使用以下内容将其关闭:
<PropertyGroup>
<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorCompileOnPublish>false</RazorCompileOnPublish>
</PropertyGroup>
推荐阅读
- java - Camel CXF(代码优先)Tomcat示例——如何部署客户端
- java - Hadoop MapReduce 使用相同的键添加值 - Java
- android - 如何将 Android 照片发送到 Azure 虚拟机
- swift - 呈现 UIAlert 时的长时间延迟
- javascript - 为什么 nginx 不能在 AJAX 请求中处理 base64 图像(Laravel、Javascript、Nginx)
- spring - Junit/Fongo:如何在单元测试中使用 Fongo 来检查 NotNull
- amazon-web-services - AWS Certificate Manager 中处于待处理状态的证书
- python - 301 使用 Flask 将旧 URL 重定向到新 URL
- uwp - 使用平板电脑水平拍摄照片,但获得垂直照片
- sql-server - 如果有值,则选择语句返回,如果没有值