如何在VS Code或.NET CLI中为ASP.NET MVC添加Area?
在VS Code及终端中为ASP.NET MVC添加Area的方法
方法一:使用.NET CLI代码生成工具
这是最快捷的方式,通过终端命令即可自动生成Area的完整结构:
安装代码生成工具(首次使用需执行)
打开终端(VS Code可按`Ctrl+``唤起内置终端),运行以下命令全局安装ASP.NET代码生成工具:dotnet tool install --global dotnet-aspnet-codegenerator若项目未安装代码生成依赖包,还需执行:
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design生成指定名称的Area
切换到项目根目录,执行命令(将[AreaName]替换为你的Area名称,比如Admin):dotnet aspnet-codegenerator area [AreaName]执行完成后,会自动在项目中创建
Areas/[AreaName]目录,并生成Controllers、Models、Views文件夹及必要的配置文件。
方法二:手动创建Area结构
如果不想依赖CLI工具,也可以手动搭建Area的目录和文件:
创建基础目录结构
- 在项目根目录创建
Areas文件夹(若不存在) - 在
Areas下创建对应名称的子文件夹(如Admin) - 在该子文件夹内创建
Controllers、Models、Views三个核心文件夹(按需可添加Data文件夹用于数据操作)
- 在项目根目录创建
配置Views目录的Web.config
在Areas/[AreaName]/Views下创建Web.config文件,内容可复制项目根目录Views/Web.config的内容,确保视图引擎配置正确。创建Area控制器
在Controllers文件夹中创建控制器(如AdminController.cs),需注意:- 控制器类继承自
Controller - 添加
[Area("[AreaName]")]特性指定所属Area - 可通过属性路由定义访问路径,示例:
using System.Web.Mvc; namespace YourProjectName.Areas.Admin.Controllers { [Area("Admin")] [Route("Admin/[controller]/[action]")] public class AdminController : Controller { public ActionResult Index() { return View(); } } }
- 控制器类继承自
配置全局路由(可选,若使用属性路由可跳过)
打开项目根目录的RouteConfig.cs,添加Area的路由规则,示例:routes.MapRoute( name: "Admin_default", url: "Admin/{controller}/{action}/{id}", defaults: new { action = "Index", id = UrlParameter.Optional }, namespaces: new[] { "YourProjectName.Areas.Admin.Controllers" } );注意将命名空间替换为你项目的实际命名空间。
注意事项
- 使用CLI生成时,若提示找不到命令,可尝试重启终端或检查环境变量是否包含.NET工具路径
- 手动创建时需确保命名空间与目录结构一致,避免路由匹配失败
- 属性路由和全局路由二选一即可,推荐使用属性路由更灵活
内容的提问来源于stack exchange,提问作者Amir Kabir
相关产品推荐
相关产品推荐

