Angular4材料的主题不是ASP.NET核心项目工作正常

问题描述:

我刚刚创建使用本网站上提到的ASP.NET核心角SPA模板的项目:Building Single Page Applications on ASP.NET Core with JavaScriptServicesAngular4材料的主题不是ASP.NET核心项目工作正常

在那之后,我加入了@角/材料,@ angular/cdk和@ angular/flex-layout npm包。

我用一个角度材质工具栏和一个菜单制作了一个非常简单的页面。 我在_Layout.cshtml上链接了Pink-BlueGrey.css prebuilt-theme(手动将css文件复制到wwwroot以使事情变得简单)。

结果是现在所有的角度材质组件都被设计了样式,但是每个不包含在材质组件中的HTML都没有样式。我不明白为什么。因为如果我使用Angular CLI创建项目,一切都按照预期的方式进行。

我选择的这个主题有一个黑暗的背景。我需要字体是白色的,以便人们可以阅读。但这并不是ASP.NET Core项目上发生的事情。

我认为这可能是一个webpack配置问题。我试图从_Layout.cshtml中删除链接到css文件,并将其添加到webpack.config.vendor.js中的供应商包中。但结果是一样的。它有效,但不是我想要的。

这是应该发生的吗?这是设计吗?我是否应该编写一个CSS文件来对所有不包含在Angular Material组件中的HTML进行样式化?

我试图通过从Index.cshtml中删除_ViewImports.cshtml中的“Microsoft.AspNetCore.SpaServices”tagHelper和asp-prerender-module指令来禁用服务器端预呈现。一切都保持不变。我不知道什么是错的。

我是网络开发新手,我认为这应该是简单的东西。但是我找不到有这个确切的设置和问题的人。

所以,事情是我错了Angular CLI。我用它制作的项目是使用mdSidenav。当我用一个简单的div取代了md-sidenav-container指令并删除了sidenav组件后,Pink-BlueGrey的黑暗背景消失了,我的所有文字又变黑了。与ASP.NET Core项目一样的行为。所以这不是ASP.NET Core安装程序的问题。

我决定用来解决上述问题的方法是不是将“mat-app-background”类放在body标签中,而是必须使用材质容器来处理页面,我在根应用程序组件上使用了md-sidenav-container指令。我没有使用sidenav本身。只是它的容器,因此每个使用的文本(即使它只是一个h1标签)都将被样式化,因为它包含在材质组件中。

也许这不是最优雅的解决方案。所以如果有人有更好的建议...