ASP.NET MVC使用区域(Area)功能
作者:Ruby_Lu 发布时间:2024-06-05 09:25:04
区域(Area)是一个 ASP.NET MVC 功能,用于将相关功能组织为一个单独的命名空间(用于路由)和文件结构(用于视图)。使用区域通过向控制器和操作添加 一个路由参数(area)来创建用于路由目的的层次结构。
区域提供了一种将大型ASP.NET Core MVC Web 应用程序分割成更小功能分组的方法。一个区域实际上是应用程序内的 MVC 结构。对于大型应用程序,将应用程序分成单独的该机功能区域是有利的。例如,具有多个业务单位的电子商务应用的结账,计费,搜索等。
在 ASP.NET Core MVC 项目中,一个区域可以定义为具有自己的一组控制器,视图和模型的较小的功能单元。
下列情况可以考虑使用区域:
应用程序由多个高级功能组件组成,应在逻辑上分开。
想要划分 MVC 项目,使每个功能区域可以单独工作。
区域特点:
ASP.NET Core MVC 应用程序可以有任意数量的区域。
每个区域都有自己的控制器,视图和模型。
允许将大型 MVC 项目组织成可以独立工作的多个高级组件。
支持具有相同名称的多个控制器 —— 只要它们所在区域不同。
配置区域路由在 ASP.NET Core MVC 之路由(Routing) 中有介绍。区域视图检索路径和正常视图一致,默认的位置可以通过 Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions 的 AreaViewLocationFormats 方法被修改。
例如,下面代码中的文件夹名为 Area,它将被修改为 Categories :
services.Configure<RazorViewEngineOptions>(options =>
{
options.AreaViewLocationFormats.Clear();
options.AreaViewLocationFormats.Add("/Categories/{2}/Views/{1}/{0}.cshtml");
options.AreaViewLocationFormats.Add("/Categories/{2}/Views/Shared/{0}.cshtml");
options.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
});
需要注意的一点是,Views 文件夹的结构是唯一需要重点考虑的,其他文件夹如 Controller 和 Modes 的内容并不重要。因为 Controller 和 Modes 的内容只是被编译成 .dll 代码,而不是作为 Views 的内容直到视图被请求。
在发布时需要注意发布 Area 文件夹,需要发布 Area 文件夹下的所有 view 。
来源:https://www.cnblogs.com/afei-24/p/11379582.html


猜你喜欢
- 最简单的php语句把数据库*.sql文件导入数据库 $sql=file_get_contents("text.sql")
- 如果看到特别感兴趣的抖音vlogger的视频,想全部dump下来,如何操作呢?下面介绍介绍如何使用python导出特定用户所有视频信息抓包分
- 注意:本示例仅供学习参考~混淆原理出于某种原因,明文信息通过自定义字体进行渲染,达到混淆目的。举个例子:网页源码 <p>123&
- 关于Tensor的数据类型说明1. 32位浮点型:torch.FloatTensora=torch.Tensor( [[2,3],[4,8]
- 序列的逆序方式1. range 函数一般 for 循环中总会用到 range 函数来进行顺序遍历,同样的,range 也能表示序列的逆序。在
- 当外层div盒子设置宽度为100%时,可echarts渲染出来宽度只有100px,这种情况大多数echarts所在的div设置了displa
- 本文实例为大家分享了python远程连接MySQL数据库的具体代码,供大家参考,具体内容如下连接数据库这里默认大家都已经配置安装好 MySQ
- 相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入。这个计划将移动到使绝
- 工作中遇到了要计算两个数百分比的问题,python 2.7 环境。代码:#!/usr/bin/env python#function: 计算
- 本篇内容介绍了Python编程语言的优势和不足。首先我们来了解什么是Python?Python是一种面向对象的高级编程语言,具有集成的动态语
- 前记Asyncio的同步原语可以简化我们编写资源竞争的代码和规避资源竞争导致的Bug的出现。 但是由于协程的特性,在大部分业务代码中并不需要
- 步骤查看历史记录# 查看历史记录git log -3实例Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-
- 使用Python开发的同学一定听说过Requsts库,它是一个用于发送HTTP请求的测试。如比我们用Python做基于HTTP协议的接口测试
- 首先我们解压$ unzip p8202632_10205_LINUX.zip解压后我们会发现多出了个文件夹,他是:Disk1,进入Disk1
- 没配置的可以看一下我上一篇 地址开启小皮数据库text 数据库表 student 字段 student_no name age sex效果图
- round()方法返回 x 的小数点四舍五入到n个数字。语法以下是round()方法的语法:round( x [, n] )参数
- 最近为了测试网速情况怎么样,由于部分业务服务器需要关闭icmp,这样的话采用普通的ping就无法适应我的需求,于是自己简单的写了一个基于tc
- 前言lambda是表达式,用于创建匿名函数,可以和filter、map、reduce配合使用。本文环境Python3.7。一、lambda表
- nav导航栏<nav role="navigation" class="navbar navbar-de
- 有效地加载数据有时我们需大量地把数据加载到数据表,采用批量加载的方式比一个一个记录加载效率高,因为MySQL不用每加载一条记录就刷新一次索引