ASP.NET Core中新增Action无法被调用的问题求助
问题原因及解决办法
核心问题
你把[Area("dashboard")]特性标注在了Index Action方法上,而非控制器类本身。ASP.NET Core的区域路由要求区域特性必须应用在控制器级别,才能让整个控制器下的所有Action被区域路由正确识别。单独给Index添加特性,只会让该Action纳入区域路由,AddWeblog因未关联到目标区域,无法通过区域路由被访问。
修复步骤
修改控制器代码,将[Area("dashboard")]移至控制器类上:
using Microsoft.AspNetCore.Mvc; namespace PresentationLayer.Areas.dashboard.Controllers { [Area("dashboard")] // 移到控制器类定义处 public class Weblog : Controller { public IActionResult Index() { return View(); } public IActionResult AddWeblog() { return View(); } } }
额外验证项
- 确认
Program.cs中已配置区域路由规则,示例如下:app.MapControllerRoute( name: "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); - 访问AddWeblog的正确URL应为
/dashboard/Weblog/AddWeblog,检查请求地址是否符合 - 确认
AddWeblog.cshtml视图放置在Areas/dashboard/Views/Weblog/目录下
内容的提问来源于stack exchange,提问作者محمد مهدی الماسی
相关产品推荐
相关产品推荐

