ASP.NET MVC使用区域(Area)功能

 更新时间:2022年04月15日 09:03:35   作者:Ruby_Lu  
这篇文章介绍了ASP.NET MVC使用区域(Area)功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

区域(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 。

到此这篇关于ASP.NET MVC使用区域(Area)功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • .net中的Span<T>类和Memory<T>类介绍

    .net中的Span<T>类和Memory<T>类介绍

    这篇文章介绍了.net中的Span<T>类和Memory<T>类,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • .NET中开源文档操作组件DocX的介绍与使用

    .NET中开源文档操作组件DocX的介绍与使用

    在大家日常开发中读写Offic格式的文档,大家多少都有用到,可能方法也很多,组件有很多。这里不去讨论其他方法的优劣,只是向大家介绍一款开源的读写word文档的组件。读写Excel有NPOI,读写Word,那看看DocX吧。下面跟着小编一起来学习学习吧。
    2016-12-12
  • 解析ABP框架领域层中的实体类与仓储类

    解析ABP框架领域层中的实体类与仓储类

    基于ASP.NET的ABP框架遵循DDD领域驱动设计,其中就有一个领域层的概念,这里我们就来解析ABP框架领域层中的实体类与仓储类:
    2016-06-06
  • ASP.Net Core MVC基础系列之项目创建

    ASP.Net Core MVC基础系列之项目创建

    这篇文章介绍了创建ASP.Net Core MVC项目的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • .Net创建型设计模式之原型模式(Prototype)

    .Net创建型设计模式之原型模式(Prototype)

    这篇文章介绍了.Net设计模式之原型模式(Prototype),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Blazor组件事件处理功能

    Blazor组件事件处理功能

    这篇文章介绍了Blazor组件的事件处理功能,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • .Net行为型设计模式之中介者模式(Mediator)

    .Net行为型设计模式之中介者模式(Mediator)

    这篇文章介绍了.Net行为型设计模式之中介者模式(Mediator),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • ASP.NET中HttpContext对象下的属性介绍

    ASP.NET中HttpContext对象下的属性介绍

    这篇文章介绍了ASP.NET中HttpContext对象下的属性,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 三种方法解决ASP.NET Core 6中的依赖项

    三种方法解决ASP.NET Core 6中的依赖项

    这篇文章主要介绍了解决ASP.NET Core 6依赖项的三种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11
  • 一步步打造漂亮的新闻列表(无刷新分页、内容预览)第一步

    一步步打造漂亮的新闻列表(无刷新分页、内容预览)第一步

    新闻列表是信息管理系统中最常见的,也是最简单的,一些简单的新闻列表就是一个table,然后里面循环写入数据
    2010-07-07

最新评论