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

标签:ASP.NET,MVC,区域,Area
0
投稿

猜你喜欢

  • python pygame入门教程

    2023-10-08 11:32:15
  • 在VScode中引用自定义模块问题

    2023-08-13 03:50:37
  • Django中的用户身份验证示例详解

    2023-10-08 17:06:08
  • Python函数中的作用域规则详解

    2023-02-14 04:32:28
  • Go语言kylin任务自动化实例详解

    2024-05-08 10:24:04
  • Python使用pyenv实现多环境管理

    2022-10-23 00:18:23
  • JavaScript入门学习书籍的阶段选择

    2008-01-11 19:39:00
  • 2020版Python学习路线图(附学习资料)

    2021-01-11 09:33:52
  • Vue 中文本内容超出规定行数后展开收起的处理的实现方法

    2024-05-29 22:48:07
  • Python使用pickle模块存储数据报错解决示例代码

    2023-12-10 02:05:05
  • pytorch模型存储的2种实现方法

    2023-10-06 11:37:24
  • Flask web开发处理POST请求实现(登录案例)

    2022-03-06 09:34:13
  • 关于Python-faker的函数效果一览

    2023-12-02 21:20:06
  • 利用Python制作一个简单的天气播报系统

    2023-07-30 17:35:03
  • Sql Server "用户登录失败,错误编18456"的解决过程

    2024-01-26 20:03:46
  • python查找指定具有相同内容文件的方法

    2023-08-14 17:20:04
  • Django多进程滚动日志问题解决方案

    2023-02-01 16:21:16
  • 一文带你了解Golang中的WaitGroups

    2024-04-25 13:18:17
  • Python Pandas多种添加行列数据方法总结

    2023-10-19 17:17:58
  • python中将两组数据放在一起按照某一固定顺序shuffle的实例

    2022-02-13 12:15:14
  • asp之家 网络编程 m.aspxhome.com