ASP.NET Core – Razor Class Library (RCL)
前言
Razor Class Library 的用途是封装 Razor views, pages, controllers, page models, Razor components, View components, and data models, 到一个独立的 Library, 然后 share with multiple projects.
以前介绍 Identity – Introduction & Scaffold 的时候就有提到过, ASP.NET Core 封装了一些 Login, User Management 的 Pages, 方便我们快速启动 Identity.
官网的例子更多是用在 Blozor + Razor components. 但是我没有用 Blozor 和 Razor components. 我只用 Razor pages 和 View component.
所以这篇给的例子是 Razor Pages + View Component.
参考
Docs – Create reusable UI using the Razor class library project in ASP.NET Core
Docs – Consume ASP.NET Core Razor components from a Razor class library (RCL)
创建项目
1 个 web app, 一个 library.
mkdir TestRazorClassLibrary
cd TestRazorClassLibrary
dotnet new razorclasslib -o MyRazorLibrary --support-pages-and-views
dotnet new webapp -o MyWebApp
dotnet add MyWebApp reference MyRazorLibrary
注意: new razorclasslib 需要添加 --support-pages-and-views, 因为我要 share 的是 View Component.
最后一行是添加 reference, 因为 library 没有发布到 nuget.
创建 View Component in Library
用 VS Code 打开 TestRazorClassLibrary folder
把 build-in 创建的 Area 洗掉, 创建 component folder

HelloWorldViewComponent.cs
using Microsoft.AspNetCore.Mvc; namespace MyRazorLibrary; public class HelloWorldViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View("~/Component/HelloWorld/Index.cshtml");
}
}
Index.cshtml
<h1>Hello World</h1>
调用 View Component in Web App
Index.cshtml

@page
@model IndexModel
@addTagHelper *, MyRazorLibrary @{
ViewData["Title"] = "Home page";
} <div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div> <vc:hello-world></vc:hello-world>

运行
dotnet watch run --project MyWebApp
效果

ASP.NET Core – Razor Class Library (RCL)的更多相关文章
- ASP.NET Core - Razor 页面简介
简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...
- ASP.NET Core - Razor页面之Handlers处理方法
简介 在前一篇文章中,我们讨论了Razor页面.今天我们来谈谈处理方法(Handlers). 我们知道可以将代码和模型放在 .cshtml 文件里面或与 .cshtml 匹配的 .cshtml.cs ...
- ASP.NET Core Razor中处理Ajax请求
如何ASP.NET Core Razor中处理Ajax请求 在ASP.NET Core Razor(以下简称Razor)刚出来的时候,看了一下官方的文档,一直没怎么用过.今天闲来无事,准备用Rozor ...
- ASP.NET Core Razor页面禁用防伪令牌验证
在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站: ...
- ASP.NET Core Razor 页面使用指南
ASP.NET Core Razor 页面作为 ASP.NET Core 2.0的一部分发布,它是基于页面的全新的Web开发框架.如果您想学习如何使用 ASP.NET Core Razor 页面,可以 ...
- 学习ASP.NET Core Razor 编程系列一
一. 概述 .NET Core 1.0发布的时候就想进行学习的,不过根据微软的以往的发布规律1.0版可以认为是大众测试版,2.0才算稳定.现在2.1都已经发布了预览版,之前对其"不稳定&qu ...
- 学习ASP.NET Core Razor 编程系列二——添加一个实体
在Razor页面应用程序中添加一个实体 在本篇文章中,学习添加用于管理数据库中的书籍的实体类.通过实体框架(EF Core)使用这些类来处理数据库.EF Core是一个对象关系映射(ORM)框架,它简 ...
- 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- 学习ASP.NET Core Razor 编程系列六——数据库初始化
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
随机推荐
- odoo 开发入门教程系列-一个新应用
一个新应用 房地产广告模块 假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域. 以下为包含一些广告的主列表视图 form视图顶层区域概括了房产的重要信息,比如name,Prope ...
- 标准 C++ 中的 string 类的用法总结
相信使用过 MFC 编程的朋友对 CString 这个类的印象应该非常深刻吧?的确,MFC 中的 CString 类使用起来真的非常的方便好用.但是如果离开了 MFC 框架,还有没有这样使用起来非常方 ...
- elementui中实现loding实现局部加载,以el-dialog为例
效果 封装loading加载(也可以直接使用,封装为了方便多次调用) 组件定义:loadDiy.js import { Loading } from "element-ui"; e ...
- 同时使用mp和mybatis,我的type-aliases-package失效了
mybatis: #mapper配置文件 mapper-locations: classpath:mapper/*.xml type-aliases-package: com.sky.entity c ...
- StringBuilder,一种可变的string
StringBuilder 是 Java 中用于操作字符串的可变对象.它允许在字符串中进行修改.添加.删除字符等操作,而不会像普通的字符串操作(例如使用 String 类)那样产生新的字符串对象.这种 ...
- BI 工具如何助力市政设计公司实现数字化转型?
一.前言 近年来,国家出台多个政策文件来鼓励和发展数字化和智能化,如<十四五规划>提出要推进产业数字化转型.<交通强国建设纲要>提出要大力发展智慧交通.上海市发布的<关于 ...
- 【转载】 【树莓派】为Ubuntu Mate for ARM 更换中国软件源
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wr132/article/details ...
- cuda的slient模式下的安装
实验室的师弟要搞cuda编译,不会安装cuda,其实这个主要原因还是服务器上是不允许个人随意安装软件的,尤其是nvidia的那些东西,很容易把整个服务器搞崩掉,虽然实验室的服务器集群我是唯一的一个管理 ...
- java模拟并发请求工具类(测试专用)
1.背景 实际生产中,我们开发好接口后可能会简单的压力测试一下,也就是说模拟并发测试,测试工具类如下: 2.工具类 package tentative.normal.other; import cn. ...
- 如何在Spring Cloud中实现Nacos客户端登录密码加密
背景 公司规范要求配置文件里不能出现明文的密码.最近项目引入了Nacos作为服务的配置中心,使用的是spring-cloud-starter-alibaba-nacos-config这个包. 基本的b ...