问题标签 [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 投票
2 回答
935 浏览

asp.net-identity - 在 ViewComponent 中重定向到 asp.net 核心身份中的登录页面

我试图让我的视图组件仅在用户登录时才可访问。我正在检查用户是否未通过身份验证,然后重定向到登录页面,但以下代码给了我错误

但是这段代码在登录页面上给了我错误

在检查 loginviewmodel 时,它仅重载了带有参数的构造函数

我不知道如何发送这些参数。或者有更好的方法重定向到登录页面

0 投票
1 回答
169 浏览

visual-studio - 使用 BrowserLink 刷新 Razor 类库更改

BrowserLink 与 Asp.net Core webapp 配合得很好,但是当涉及到 Razor 类库 (RCL) 时,我只是看不到它工作。每次我在 RCL 中的 .cshtml 视图中进行更改时,我都必须对解决方案进行重建,以查看根本没有生产力的更改。有人能够与 RCL 一起工作吗?谢谢。

0 投票
1 回答
820 浏览

c# - 使用 TargetFramework 创建 Razor 类库到 .net core 3 会引发错误

我正在创建一个 ASP.Net Core 3 预发布 9 MVC 应用程序,并且我想创建一些 Razor 类库 (RCL)。从模板创建 RCL 时,它将默认为目标netstandard2.0,这对于 .Net Core 3 来说确实是不可能的,请参阅以下GitHub 问题。然后通过以下代码引发一些奇怪的错误:

在此处输入图像描述

0 投票
1 回答
262 浏览

c# - 直接引用 Razor 类库程序集

我正在开发一个需要从其他项目填充页面的 Web 应用程序。我希望为此使用 Razor 类库 (RCL)。该文档指出,RCL 只能作为项目引用或 nuget 包进行引用。我希望这只是确保开发人员采用推荐方式的捷径。不幸的是,如果我直接从我的 RCL 项目 (MyProject.dllMyProject.Views.dll) 中引用两个生成的程序集,它就不起作用。仅当我将项目引用添加到 RCL 项目时,它才有效。

我工作的公司有一个自定义构建管道,由于我无法控制的原因,我只能直接引用程序集。

在使用直接引用和项目引用时,我花了一些时间比较编译的输出,但我找不到区别。有人知道为什么直接引用对 RCL 不起作用吗?如果我了解区别是什么,我应该能够从那里开始工作。

作为奖励,有人知道解决方法吗?创建CompiledRazorAssemblyPart作品(如Loading Razor Class Libraries as plugins中所述),但我宁愿不必手动搜索程序集。

0 投票
2 回答
2249 浏览

azure - 我们可以在一个 yaml 文件中有多个触发器来执行不同的作业吗?

管道是否可以在一个 YAML 文件中包含多个触发器,每个触发器执行不同的作业?

在我们的管道中,我们将解决方案中的每个项目打包并将其作为 nuget 包推送到我们自己的 azure devops 工件中,并希望根据项目进行打包和推送。看到可以在触发器中指定分支和路径,但是根据this只能有一个触发器。但是他只在问题中指出了这一点,并且文档没有明确说明。

现在我的选择是为每个项目配置带有 yaml 文件的不同管道,但我想在这里询问是否可以这样做。

0 投票
2 回答
2598 浏览

c# - Razor 类库不包含 DLL 中的视图

我有一个 ASP.Net Core MVC 应用程序(用 F# 编写)使用.Net Core 3它在外部 Razor 类库中具有视图(因为您不能混合 C# 和 F#),但是,当我运行应用程序时,找不到视图。

MVC 应用程序确实有对类库的引用,但是当我使用 dotPeek 查看类库 DLL 时,它没有任何已编译的视图:

dotPeek 反汇编

这是csprojRazor 类库的:

并且项目中Views:

Razor 类库解决方案资源管理器

我猜该csproj文件很可能是错误的,但我该如何修复它?

0 投票
1 回答
214 浏览

.net-core - Blazor Core Hosted - Razor 类库项目中的所有组件都在页面上打印为 HTML

我还没有找到类似问题的关键字,所以我发布了一个新的。

该项目运行良好,突然发生了下面描述的问题。我只是在编辑 Razor 类库中的一些 Razor 文件,因此无法追溯到我所做的任何代码修改。

问题:

我有以下项目结构:

在此处输入图像描述

Client、Server 和 Shared是最初由 NET Core 3.0 中的 Blazor 模板创建的项目。DesktopClient是与 ElectronNET 类似的 Blazor 项目,问题也发生在那边的组件上。SharedLibrary项目是放置所有项目通用组件的项目,问题的根源显然来自哪里。

客户端项目中引用了SharedLibrary 因此我可以访问客户端项目中的组件。

发生的事情是Razor 类库中的组件突然停止“编译”,所有“@”都被打印为 Raw HTML,就像“计数器 2”的按钮一样:

[ 在此处输入图像描述]

注意图像上有 3 个按钮。第一个位于基本 Razor 页面中,并且正在正确编译。第二个来自SharedLibrary项目,显然没有被编译,因为“@”标签没有被替换d。第三个按钮来自客户端项目(与基本 Razor 页面相同的项目)中的一个组件,并且工作正常。

所以问题是SharedLibrary Razor 文件没有被“编译”。

我试过的:

  • 从项目中删除和添加引用;
  • 清洁和重建解决方案;
  • 更新包;
  • 检查 .csproj 看看我是否能找到任何错误/遗漏的东西(在这个文件上没有经验,所以可能遗漏了一些东西)。
  • 创建了一个新的 Blazor Core Hosted 项目并添加了一个 Razor 类库,其设置与此演示相同。它工作得很好,所以这个项目的问题。依赖项和“.csproj”文件看起来非常相似。

编码:

.csproj 用于客户项目:

SharedLibrary 的 .csproj

索引.razor

SharedLibrary 项目中的 SocialWithFormLoginComponent.razor

客户端项目中的 Counter.razor

最后的评论

如您所见,代码对于我的故障排除非常简单,但项目不是,因此重新创建将是很多工作。

有什么建议我可以尝试吗?我在这里真的很困惑。

提前致谢!

更新解决方案:

事实证明,正如@dani hererra 发布的那样,我在附加的 Razor 类库的组件的文件夹中缺少“_Imports.razor”,如下所示:

在此处输入图像描述

0 投票
3 回答
461 浏览

asp.net-mvc - 在没有 AspNetCore Web 应用程序的情况下使用存储在 Razor 类库 3.0 (RCL) 中的 Razor 模板

我正在使用 Razor 模板 (cshtml) 构建用于电子邮件的 HTML。虽然我可以让这一切正常工作并且我可以从 ASPNetCore 3.0 Web 应用程序发送电子邮件,但我实际上想从另一个不是 Web 应用程序的进程发送电子邮件。理想情况下,我想对电子邮件进行排队,这可以从任意数量的后端进程触发,然后从作为 Windows 服务运行的计时器之类的服务发送这些邮件,或者可能是通过诸如 Functions 之类的东西在 Azure 中运行的后端工作人员发送这些邮件。

有没有办法在 .NetCore 控制台或其他不在 AspNetCore 中托管的应用程序中利用 RCL 中的剃刀模板?

0 投票
0 回答
45 浏览

asp.net-core-3.0 - 为什么.Net Core 3.0 ViewComponent 中没有可用的 Request.Path

在这个 ViewComponent 中,我正在注入 IHttpContextAccessor,但是当 session 属性存在时,ctx.HttpContext.Request.Path 会产生一个空字符串。有谁知道为什么?

顺便说一句,我没有在 ConfigureServices 中忘记这一点

ViewComponent 位于 Razor 类库中 - 代码与缺少的 Request.Path 值不同。

我在同一个库的 Razor PageModel 类中也没有 Request.Path 值:

ctx.HttpContext.User 很好,但同样没有 Request.Path。真是莫名其妙

0 投票
0 回答
272 浏览

c# - 如何简化 ASP.Net Core 3.0 中的 Razor 类库包含?

以前,在 ASP.Net Core 2.2 中,我的 Startup 类中有以下内容:

任何引用的 Razor 类库都会自动显示其控制器在正确的路径上(通过控制器中的属性路由),从而呈现其正确的视图。

现在,我已将所有内容升级到 ASP.Net Core 3.0,我的 Startup 现在看起来像这样:

Configure()方法是根据规范,但ConfigureServices()突然有很多额外的“行李”。一切似乎都有效,但手动添加 Razor 类库程序集似乎很麻烦(我有几个,它使代码的可维护性大大降低)。以前所有视图也会自动找到,但现在我必须使用Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationNuGet 包才能让应用程序能够在 RCL 中找到视图。

在 ASP.Net Core 3.0 中是否有更简单的方法来使用带有自己的视图和控制器的 Razor 类库?