Orchar Core 创建一个模块化的ASP.NET Core应用程序
您将构建什么?
您将构建一个模块化的ASP.NET Core MVC Web应用程序,类似于Orchard Core附带的示例“Hello World”应用程序。它包括一个Web应用程序和一个模块。Web应用程序提供布局,而模块注册路线并响应主页请求。您可以参考Orchard Core中的以下项目了解更多信息。
- src/OrchardCore.Mvc.Web
- src/OrchardCore.Modules/OrchardCore.Mvc.HelloWorld
您需要什么?
当前版本的.NET SDK。你可以从这里下载https://dotnet.microsoft.com/download.。
一个文本编辑器和一个终端,您可以在其中运行DotNet CLI命令。
创建Orchard Core站点和模块。
有不同的方式可以为Orchard Core创建站点和模块。你可以在这里了解更多关于它们的信息。
在本指南中,我们将使用我们的代码生成模板。您可以使用以下命令安装模板的最新稳定版本:
dotnet new -i OrchardCore.ProjectTemplates::1.0.0-*
创建一个名为OrchardCore.Mvc的空文件夹,该文件夹将包含我们的项目。打开一个终端,导航到该文件夹,然后运行以下命令来创建Web应用程序:
dotnet new ocmvc -n OrchardCore.Mvc.Web
接下来创建Hello World 模块
dotnet new ocmodulemvc -n OrchardCore.Mvc.HelloWorld
提交项目引用
dotnet add OrchardCore.Mvc.Web reference OrchardCore.Mvc.HelloWorld
(可选)如果要在Visual Studio中打开解决方案,可以添加同时引用web应用程序和模块的解决方案文件。
dotnet new sln -n OrchardCore.Mvc
dotnet sln add OrchardCore.Mvc.Web\OrchardCore.Mvc.Web.csproj
dotnet sln add OrchardCore.Mvc.HelloWorld\OrchardCore.Mvc.HelloWorld.csproj
测试这个程序
从包含两个项目的OrchardCore.Mvc根文件夹中,运行以下命令以启动web应用程序:
dotnet run --project .\OrchardCore.Mvc.Web\OrchardCore.Mvc.Web.csproj
您的应用程序现在应该在以下端口上运行和侦听:
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
打开链接 https://localhost:5001/OrchardCore.Mvc.HelloWorld/Home/Index 可以看见Hello from OrchardCore.Mvc.HelloWorld.
布局来自主web应用程序项目,而控制器、操作和视图来自模块项目。
注册一个自定义的路由
默认情况下,模块中的所有路由都遵循模式{area}/{controller}/{action},其中{area}是模块的名称。我们将在模块中更改视图的路径以响应主页请求。
在OrchardCore.Mvc.HelloWorld的Startup.cs文件中,在Configure方法中添加自定义路由。
routes.MapAreaControllerRoute(
name: "Home",
areaName: "OrchardCore.Mvc.HelloWorld",
pattern: "",
defaults: new { controller = "Home", action = "Index" }
);
您还可以在模块的“视图->主”文件夹中更改Index.cshtml文件,使其显示Hello World,类似于Orchard Core中的项目。
<h1>Hello World</h1>
重新启动应用程序并导航到主页(位于https://localhost:5001 显示Hello World消息。)
总结
您刚刚使用Orchard Core创建了一个模块化ASP.NET Core MVC web应用程序。它包括一个提供布局的web应用程序和一个响应主页请求的自定义模块
Orchar Core 创建一个模块化的ASP.NET Core应用程序的更多相关文章
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...
- 008.Adding a model to an ASP.NET Core MVC app --【在 asp.net core mvc 中添加一个model (模型)】
Adding a model to an ASP.NET Core MVC app在 asp.net core mvc 中添加一个model (模型)2017-3-30 8 分钟阅读时长 本文内容1. ...
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
- 一个Mini的ASP.NET Core框架的实现
一.ASP.NET Core Mini 在2019年1月的微软技术(苏州)俱乐部成立大会上,蒋金楠老师(大内老A)分享了一个名为“ASP.NET Core框架揭秘”的课程,他用不到200行的代码实现了 ...
- 手写一个简版 asp.net core
手写一个简版 asp.net core Intro 之前看到过蒋金楠老师的一篇 200 行代码带你了解 asp.net core 框架,最近参考蒋老师和 Edison 的文章和代码,结合自己对 asp ...
- 学习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 入门教程 9、ASP.NET Core 中间件(Middleware)入门
一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...
- ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...
随机推荐
- docker搭建kafka集群(高级版)
1. 环境docker, docker-compose 2.zookeeper集群 /data/zookeeper/zoo1/config/zoo.cfg # The number of millis ...
- 轻松上手SpringBoot+SpringSecurity+JWT实RESTfulAPI权限控制实战
前言 我们知道在项目开发中,后台开发权限认证是非常重要的,springboot 中常用熟悉的权限认证框架有,shiro,还有就是springboot 全家桶的 security当然他们各有各的好处,但 ...
- Android模块化开发实践
一.前言 随着业务的快速发展,现在的互联网App越来越大,为了提高团队开发效率,模块化开发已经成为主流的开发模式.正好最近完成了vivo官网App业务模块化改造的工作,所以本文就对模块化开发模式进行一 ...
- 题解 Merchant
传送门 可以发现如果我们最终选择的物品集合已经确定,就很好求了 \(\sum k*t+\sum b \geqslant s\) ,二分即可 但现在我们无法确定该选哪些物品 因此我们只需要check一下 ...
- C++ 矩形交集和并集的面积-离散化
//离散化,x,y坐标分别按从小到大排序 //离散化 //1.首先分离出所有的横坐标和纵坐标分别按升序存入数组X[ ]和Y[ ]中. //2. 设数组XY[ ][ ].对于每个矩形(x1,y1)(x2 ...
- vsftpd - FTP 服务器安装
由于要将本地程序上传至云服务器中,所以需要给云服务器端安装ftp服务器.记录一下ftp的安装过程,以便以后使用.服务器端所用系统为Ubuntu16.04. 1. 安装ftp服务器, apt-get i ...
- Java中的比较器(排序)
"顺序"在任何一个领域里都是非常重要的一个概念,程序也不例外.不同的执行顺序,能对你的执行结果产生直接影响. 既然涉及到顺序,那就要求排序.所以本文讨论的就是排序中使用到的比较器C ...
- 在C++中使用openmp进行多线程编程
在C++中使用openmp进行多线程编程 一.前言 多线程在实际的编程中的重要性不言而喻.对于C++而言,当我们需要使用多线程时,可以使用boost::thread库或者自从C++ 11开始支持的st ...
- zigzag走线原理及应用
电路板上弯弯扭扭的走线有什么用 往期文章: 一文读懂高速互联的阻抗及反射(上) 一文读懂高速互联的阻抗及反射(中) 前面几篇文章有部分读者反馈太深奥,不好懂,要求来一点轻松易懂的.这不,它来了!本期文 ...
- 用XPath定位Web页面元素时,如何快速验证XPath语句是否正确?
在使用Selenium做Web UI自动化测试的过程中,XPath是一种定位页面元素的常用方式.然而,面对某些元素的XPath路径过于复杂,我们想快速验证拼凑的Xpath语句是否正确时,该怎么办呢?这 ...