我有一个 Razor 类库,我已经在 .NetCore3 和 .NetCore 5 上使用了几个月,没有出现任何问题。
最近将我们的 blazor 服务器应用程序和 Razor 类库更新到 .NetCore 6 后,我在从 Razor 类库加载资源时遇到了问题。
RCL 是通过 nuget 构建和打包的,我可以看到包中的资产,例如;

Web 应用程序已更新为使用单个 program.cs,我正在使用WebApplication.CreateBuilder()我的设置选项。
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
ApplicationName = typeof(Program).Assembly.FullName,
ContentRootPath = Directory.GetCurrentDirectory(),
EnvironmentName = Environments.Development,
WebRootPath = ""
});
Run Code Online (Sandbox Code Playgroud)
加载这些资源时出现 404 错误
<link href="_content/Blurred.Framework.Web.Shared/favicon.ico" type="image/x-icon" rel="icon" />
<link href="_content/Blurred.Framework.Web.Shared/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="_content/Blurred.Framework.Web.Shared/css/site.css" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
我还可以看到wwwroot文件夹和相应的资产已加载到 Visual Studio 中的应用程序项目中。

感觉这是一个配置问题,而不是需要更改的重大问题。
ContentRootPath或 的正确设置是什么WebRootPath?
据此,我需要使用app.UseStaticFiles();我已经完成的内容,以及.NET6中未使用的 …
我这里有问题,
我创建了一个核心 3.1 的 Blazor 应用程序(服务器端),然后我用这个类库创建了一个 Razor 类库(旧 razorlib)我可以创建 blazor comp 并在我的 blazor 应用程序中重用 < myComp >,共享 Css 甚至创建完整的 Razor 视图,如Area/MyAdmin/Pages/Page1.cshtml 并从我的 Blazor 应用程序调用https://MyApp/MyAdmin/Page1使用它,抱歉我的大介绍,我的问题是,如何像页面一样重用 FULL Blazor 组件?在我的 Razor 类库中添加一个文件夹 Pages 并在其中添加 Contact.razor 并且它不会用作我的 Blazor 应用程序中的 < Contact > 但我将能够像https://MyApp/Contact一样调用?
有人可以给我一个例子吗?谢谢!
有没有办法在创建 Razor 类库并且其中有 js、css 时,它会自动从 Blazor 应用程序添加 _Host.cshtml 中的参考链接?
简而言之,我不想将我的 Css/js 的引用从我的 razor 类库添加到另一个 blazor 应用程序主机(布局)
我在 razor 类库 (.net Core 3.1) 中实现 ASP.NET Core (v3.1) 应用程序使用的静态文件时遇到困难。
当尝试访问静态文件时,我只收到 404 - 未找到。
我在 Stackoverflow 上遵循以下答案: https: //stackoverflow.com/a/57874357/1099519或
我在库中的以下位置放置了一个 css 文件:
wwwroot\css\Base.css并测试了以下路径:https://localhost:44300/_content/OurIt.Cockpit/css/Base.css,这会导致 404 未找到响应。
我已经检查过的内容:
app.UseStaticFiles();网络应用程序中。webBuilder.UseStaticWebAssets();网络应用程序中。wwwroot\css\Base.css为Content。<Project Sdk="Microsoft.NET.Sdk.Razor">。在 RCL 项目中设置以下属性:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<PropertyGroup>
我还尝试了这个答案中描述的方式: https: //stackoverflow.com/a/59574845/1099519 ,我尝试从https://localhost:44300/path/css/Base.css访问该文件
是否有机会调试或定位问题?关于微软文档:
构建 RCL 时,会生成一个描述静态 Web …
我尝试创建一个 Razor 类库,我将能够在各种项目中使用它。我需要 Razor 类库来拥有它自己的实体框架实体。我想以某种方式设置解决方案,以便 Razor 类库将使用主 Web 应用程序的 dbcontext。我用谷歌搜索,但我没有找到实现它的方法。
我希望 Razor 类库是可重用的,这样我只需要在主 Web 应用程序中添加引用并添加迁移,一切就可以使用了。
有人可以建议我如何设置解决方案以使其工作吗?
asp.net-core-2.1 entity-framework-core-2.1 razor-class-library
我正在使用 .NET Core 3.1 Razor 类库 (RCL) 创建一个可重用的 UI,如下所述:
我能够创建一个包含静态资产的 RCL,并且能够按照上面链接中的说明使用它们。默认情况下,Visual Studio 2019 (16.5.1) 只为 RCL 项目本身中的 CSS/JavaScript 文件提供 IntelliSense,而不是来自任何依赖项目。有一个先前回答的问题,显示了如何在依赖项目中创建 JavaScript 文件(它提到了一个 CSS 解决方案,但没有提供实际答案):
有谁知道如何让 VS2019 在依赖项目中提供 CSS IntelliSense?这里有一个示例解决方案可以说明这里的问题:
https://github.com/shawnpaige/RCLIntellisense
感谢您的任何见解。
我最近遇到了 Razor 类库,并不能 100% 确定它们能/不能实现什么,但我非常喜欢能够创建可以在多个视图中共享的视图(和部分视图)的概念。网络项目。
然而,虽然我了解一点 C# 并且非常熟悉转换工具,但我对 VB.Net 的熟练程度要高出 1000 倍,因此我的大部分工作都是以这种方式编码的。.NET Core,据我所知不支持VB.NET。
我按照教程并从此处下载了示例代码https://learn.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-3.1&tabs=visual-studio
这样我就能够构建一个包含 RCL 和 .NetCore 网站的解决方案,该网站使用 RCL 中的视图和部分视图。
我能够构建多个 .NETCore 网站,我所要做的就是添加对 RCL 项目的引用,它们都将使用 RCL 中的共享部分视图...一切运行良好。
除了,我不想要 .NETCore 网站项目,因为我想坚持使用 VB.NET,所以我阅读并被告知我使用 .netstandard2.0 创建的 RCL 应该与 .Net Framework 兼容。
笔记; 本质上,为了满足当前的需求,我打算主要使用 RCL 来创建要在多个项目之间共享的部分视图。我很高兴使用 C# 创建它们作为项目逻辑,并且我的很多代码逻辑已经存在于 VB 类库中,我可以导入它们,但不想重写或重新学习我在 main 中已经完成的所有内容我的大部分项目。
无论如何,将我的所有工作升级到 .NetCore 将是一场噩梦......
所以....
以上一切工作正常,引用添加正常,没有任何问题。
但是...我无法弄清楚如何让 RCL 中的部分视图可供网站访问。
我不断收到错误
The partial view '****' was …Run Code Online (Sandbox Code Playgroud) 本页介绍了如何创建 Razor 类库来放置共享组件。我试图创建一个示例 Blazor 服务器端项目,其中它index.razor有一个在 Razor 类库中定义的组件。有用。
我想做的是开发一个 Blazor 服务器端应用程序,将来可以将托管模型更改为 WASM。我想知道是否可以在共享 RCL 中创建页面和组件,在这种情况下,我可以在 Blazor 服务器端项目中创建控制器,并通过 Http 调用从 Razor 类库中使用它们。如果我想将托管模型更改为 WASM,这将在将来对我有所帮助。
无论如何,我已经尝试在 RCL 中创建一个 Blazor 页面,但是当我尝试调用里面写的 URL 时,@page它没有到达。
我想问你是否有可能实现这种行为。如果是,我错过了什么?
您可以复制我的示例,只需创建一个新的 Blazor 服务器端项目,使其引用 RCL,然后插入@page "/testpage"到Component1.razor
asp.net-core blazor razor-class-library blazor-server-side blazor-client-side
我正在创建一个 ASP.Net Core 3 预发布 9 MVC 应用程序,我想创建一些 Razor 类库 (RCL)。当从模板创建 RCL 时,它将默认为目标netstandard2.0,这对于 .Net Core 3 确实不再可能,参考以下GitHub 问题。然后通过以下代码抛出一些奇怪的错误:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)