问题标签 [razor-class-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1883 浏览

asp.net-core - 部署时不提供 Nuget 包内容文件

我在 .net core 2.2 上构建了由 Razor 类库 (RCL) 项目组成的NuGet包。打包后,我看到它包含我配置的静态资产:

包详细信息 - 示例资产

当我在目标项目中安装包时,资产引用在项目结构中可见: 在此处输入图像描述

但是当我尝试在运行时访问它们时 - 我得到 404: https://localhost:44312/localizer-assets/lib/vue/vue.min.js

我看到这些文件没有“物理”放置在 wwwroot 文件夹中(它们是 iniside 包文件夹)。

有没有办法提供这些文件?这应该如何配置?

到目前为止,我一直在使用这些方法:

https://www.learnrazorpages.com/advanced/razor-class-library

Razor 类库也可以打包静态文件(js、css 等)吗?

当我直接引用 RCL 项目时,它们工作正常,但是当与 NuGet 打包并安装时,它们不再工作了。

0 投票
2 回答
1460 浏览

blazor - Blazor - Razor 类库 - 重用完整的 Blazor 页面

我这里有问题

我用核心 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一样调用?

有人可以给我一个例子吗?谢谢!

0 投票
2 回答
1257 浏览

blazor - Razor 类库添加对 css、js 的引用到主要项目大师

有没有办法在创建 Razor 类库并且在那里有 js、css 时,它会自动在 Blazor 应用程序的 _Host.cshtml 中添加参考链接?

简而言之,我不想将我的 Css/js 的引用从我的 razor 类库添加到另一个 blazor 应用程序主机(布局)

0 投票
1 回答
749 浏览

c# - 将参数发送到 Razor 页面 RCL NET Core

您好,提前感谢您提供的任何帮助。

我正在使用 .NET Core 3.1

我有一个带有 Razor 页面的 Razor 类库。

它们是包含在 Web MVC 项目的视图中的部分页面,也是 .NET Core 3.1

RCL 的剃须刀页面位于“\Shares”子文件夹中的“\Pages”文件夹内。

我像这样加载部分页面:<partial name="_SpatialTest" />

它工作正常。

但是我需要从包含的视图中向 RCL 的某些 Razor 页面发送几个参数,这就是我的问题,因为它不是超链接,我无法在路由或正文中添加参数,或者在查询字符串中...如此处建议:https ://www.learnrazorpages.com/razor-pages/routing

我已经将它作为视图数据、模型和数据进行了尝试,它给了我几个错误,但它从不工作,就像这里建议的那样:https ://www.learnrazorpages.com/razor-pages/model-binding

我已经这样设置了:

RCL 中的 Razor 页面 ->

cshtml.cs:

cshtml:

在 Web MVC 项目中查看 (cshtml) ->

错误是:

NullReferenceException:对象引用未设置为对象的实例。AspNetCore.Pages_Shared__SpatialTest.get_Model() AspNetCore.Pages_Shared__SpatialTest.ExecuteAsync() in _SpatialTest.cshtml + 测试 RCL 部分 @Model.NameTest Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context) Microsoft.AspNetCore.Mvc。 Razor.RazorView.RenderPageAsync(IRazorPage 页面,ViewContext 上下文,bool invokeViewStarts)Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext 上下文)Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.RenderPartialViewAsync(TextWriter 编写器,对象模型,IView 视图) Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ProcessAsync(TagHelperContext 上下文,TagHelperOutput 输出)Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner。

你能帮我个忙吗?

非常感谢。问候。

0 投票
5 回答
4587 浏览

asp.net-core - Razor 类库 (RCL) 中带有静态内容的 404

我在 ASP.NET Core (v3.1) 应用程序使用的 razor 类库 (.net Core 3.1) 中实现静态文件时遇到困难。

尝试访问静态文件时,我只得到 404 - Not Found。

我在 Stackoverflow 上遵循以下答案:https ://stackoverflow.com/a/57874357/1099519或

我还与以下文档进行了交叉检查:https ://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-3.0&tabs=visual-studio#create-an -rcl-with-static-assets

我在库中的以下位置放置了一个 css 文件: wwwroot\css\Base.css并测试了以下路径:https://localhost:44300/_content/OurIt.Cockpit/css/Base.css,这会导致 404 Not found 响应。

我已经检查过的内容:

  • 可以浏览任何在 RCL 中具有其视图的控制器并且它们工作正常(渲染的 HTML 代码提供给浏览器)
  • app.UseStaticFiles();Web 应用程序中。
  • webBuilder.UseStaticWebAssets();Web 应用程序中。
  • 正确的外壳。
  • Build Actionwwwroot\css\Base.css设置为Content
  • RCL 项目定义了以下 sdk:<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访问文件

有没有机会调试或定位问题?参考 Microsoft 文档:

构建 RCL 时,会生成一个描述静态 Web 资产位置的清单。使用应用程序在运行时读取清单以使用来自引用的项目和包的资产。

为了验证文件是否在程序集中,我试图找到该清单,但我找不到它或不知道在哪里寻找它(我检查了输出文件夹)。我还尝试用 ILSpy 打开 RCL,希望能找到解决问题的方法。

有什么想法(或带有 .NET Core 3.1 的静态内容的 RCL 的工作示例 - 我只找到了控制器 / 视图的示例,但没有找到静态内容的示例)?

2020 年 2 月 5 日更新:

我在 Github 上创建了一个示例进行复制: https ://github.com/DominikAmon/RclIssueDemo

0 投票
1 回答
168 浏览

c# - 如何使 Url.Action() 识别在引用的 Razor 类库中定义的区域?

在我的 ASP.NET Core 项目的 Razor 中,我正在使用 Url.Action(),如下所示:

控制器操作在引用的 Razor 类库中定义,如下所示:

回到我的 ASP.NET Core 项目,在 Visual Studio 代码编辑器中,MyArea 显示为红色,悬停工具提示显示“无法解析区域 'MyArea'”。当然,我对 Url.Action() 的调用返回 string.Empty....

但路线是有效的。

我可以对我的 ASP.NET Core 项目或引用的 RCL 应用哪些更改以使 MyArea 被识别为有效区域,并使调用 Url.Action() 返回预期的 URL?

0 投票
1 回答
666 浏览

c# - .NET Core Razor 类库似乎不适用于 Linux

我试图创建一个 .NET Core Razor 类库。

到目前为止,一切都很好。但是当我在 VSCode 中打开它并创建一个新的 cshtml 文件和一个新的类作为模型时,当我尝试继承 PageModel 时,我没有收到任何关于包的建议

此外,在 csproj 文件中,目标框架设置为 netstandard2.0,将其更改为 netcoreapp3.1 似乎没有任何改变。我在文档中找不到任何可以提示我如何处理此问题的内容。

谁能帮我这个?

我的系统是基本 OS 5.1 (Ubuntu 18.04),我使用的是 dotnet 3.1 sdk

0 投票
0 回答
463 浏览

asp.net-core - 从引用 Web 应用程序访问时,IntelliSense 不适用于 .NET Core 3.1 Razor 类库中的 CSS 文件

我正在使用 .NET Core 3.1 Razor 类库 (RCL) 创建一个可重用的 UI,如此处所述:

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-3.1&tabs=visual-studio

我能够创建一个包含静态资产的 RCL,并且能够按照上面链接中的说明使用它们。默认情况下,Visual Studio 2019 (16.5.1) 只为 RCL 项目本身的 CSS/JavaScript 文件提供 IntelliSense,而不是来自任何依赖项目。有一个先前回答的问题显示了如何在依赖项目中创建 JavaScript 文件(它提到了 CSS 解决方案,但没有提供实际答案):

VS 2019 中项目之间的 JS/CSS 智能感知

有谁知道我如何让 VS2019 在依赖项目中提供 CSS IntelliSense?这里有一个示例解决方案来说明这里的问题:

https://github.com/shawnpaige/RCLIntellisense

感谢您的任何见解。

0 投票
1 回答
1011 浏览

asp.net-core - 是否可以在 RCL 中创建 Blazor 页面?

本页介绍了如何创建一个 Razor 类库来放置共享组件。我尝试创建一个示例 Blazor 服务器端项目,其中index.razor有一个在 Razor 类库中定义的组件。有用。

我想做的是开发一个 Blazor 服务器端应用程序,将来可以将托管模型更改为 WASM。我想知道是否可以在共享 RCL 中创建页面和组件,因此,在这种情况下,我可以在 Blazor 服务器端项目中创建控制器,并通过 Http 调用从 Razor 类库中使用它们。如果我想将托管模型更改为 WASM,这将对我有所帮助。

无论如何,我尝试在 RCL 中创建一个 Blazor 页面,但是当我尝试调用其中写入的 URL 时,@page它无法访问。

我想问你是否有可能完成这种行为。如果是,我错过了什么?

您可以复制我的示例,只需创建一个新的 Blazor 服务器端项目,使其引用 RCL,然后插入@page "/testpage"Component1.razor

0 投票
1 回答
218 浏览

blazor - 将客户端库添加到 Razor 类库

我正在学习 Blazor,我注意到创建 Razor 类库是一个很好的做法,您将在其中定义大部分组件,这样您就可以在客户端或服务器中使用它们而不会出现太多问题。在不同的框架中,我习惯于将库作为引导程序包含在 SASS 形式中,因此我可以在我的组件中使用它,并且我可以轻松调整样式而不是编辑生成的 CSS。所以我认为将 Bootstrap SASS 包含到 Razor 类库中是个好主意,该类库稍后将在服务器或客户端解决方案中使用,但是我没有看到将客户端库添加到 Razor 类库的下拉列表或其他方式. 有没有办法解决它,或者它只能添加到将要引用它的项目中?这很愚蠢,因为我必须重复工作来自定义 Bootstrap。