c# - Razor 类库 (RCL) _ViewImports 在站点运行时被忽略
问题描述
我创建了一个 Razor 类库 (RCL),以按照本文中的模式为多个站点创建一个“通用 UI” 。但是我遇到了问题_ViewImports.cshtml
。
在我的 RCL 中,我有一个_TemplateLayout.cshtml
. 它使用了一个名为BTR.Camelot.Infrastructure
. 所以在 中_ViewImports.cshtml
,我有:
@using BTR.Camelot.Infrastructure.Serialization
这样 RCL 就会编译。没有它,它不会编译。
当我运行引用 RCL 并使用其模板的项目时,我收到以下错误:
当前上下文中不存在名称“JavascriptSerializer” Sys.CultureInfo.CurrentCulture = Sys.CultureInfo._parse(@Html.Raw( JavascriptSerializer.MicrosoftAjaxCultureInfo ));
JavascriptSerializer 在我的BTR.Camelot.Infrastructure.Serialization
命名空间中。我的猜测是:
- _ViewImports.cshtml 用于 RCL 以确保它可以编译。
- 站点中的_ViewImports.cshtml优先于RCL中的 _ViewImports.cshtml,并且完全忽略 RCL 版本。
有没有办法让_ViewImports.cshtml
文件“合并”?这个问题似乎承认存在这个问题,但只是接受您应该删除这些站点_ViewImports.cshtml
。我希望有一个解决方法。
我的项目结构
RootFolder
+-- SiteTemplates
| +-- Evolution
| | +-- Pages
| | | +-- _ViewImports.cshtml
| | +-- Evolution.csproj
|
+-- Websites
| +-- Personal
| | +-- RTC
| | | +-- Pages
| | | | +-- Shared
| | | | | +-- _TemplateLayout.cshtml
| | | | +-- _ViewImports.cshtml
| | | +-- RTC.csproj
|
+-- Infrastructure
| +-- Infrastructure.csproj
RTC(主站点)引用 Infrastructure.csproj 和 Evolution.csproj (RCL)。
Evolution.csproj 引用 Infrastructure.csproj。
Evolution/Pages/_ViewImports.cshtml
@using BTR.Camelot.Infrastructure.Configuration
@using BTR.Camelot.Infrastructure.Serialization
@using BTR.Camelot.SiteTemplates.Evolution.Resources
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Options
@namespace BTR.Camelot.SiteTemplates.Evolution.Pages
RTC/Pages/_ViewImports.cshtml
@namespace BTR.Camelot.Websites.Personal.RTC.Pages
@using BTR.Camelot.Websites.Personal.RTC.Models
@using BTR.Camelot.Infrastructure.Configuration
@using BTR.Camelot.Core.Extensions.LINQ
@* Not using/needing Serialization here, but RCL Layout file does. See comment in RCL _ViewImports.cshtml *@
@using BTR.Camelot.Infrastructure.Serialization
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Options
如果我在 RTC 项目中删除或注释掉@using BTR.Camelot.Infrastructure.Serialization
,那么我会收到异常。
解决方案
推荐阅读
- go - 如何 100% 确定 goroutine 是按条件等待的?
- c# - C# TCP连接,客户端无法向服务器发送消息
- javascript - Javascript - 在日期和时间格式之间添加逗号
- python - 在 Python 中使用 Todays Datetime 计算项目的完成情况
- vba - 脚本在过去三天内未过滤
- c - Cmockery on C 内置函数
- c# - SelectNodes 带来了许多结果
- wordpress - WSL Ubuntu 对使用 WordPress 安装的驱动器文件夹的权限(询问 FTP 凭据或 chmod 错误)
- apache-spark - 如何在 EMR 6.3 中运行的 SparkConf 中设置 spark.sql.legacy.allowUntypedScalaUDF 标志
- python - 用另一个字典的值替换字典的值