我的 ASP.NET Core 项目的新操作不起作用,也没有被调用,而我的其他控制器和操作工作正常。
这是我的控制器代码:
using Microsoft.AspNetCore.Mvc;
namespace PresentationLayer.Areas.dashboard.Controllers
{
public class Weblog : Controller
{
[Area("dashboard")]
public IActionResult Index()
{
return View();
}
public IActionResult AddWeblog()
{
return View();
}
}
}
我的
index
操作工作正常,但我的 AddWeblog
方法不再被调用。
操作的名称与视图的名称相同。
此控制器位于区域中,而在此之前的其他控制器可以正常工作,但在这之后,当我添加任何控制器时,只需索引操作即可工作,为什么?
我清理了解决方案,重新启动了 Visual Studio,删除了控制器并重写了它,但没有任何效果。
Area
属性需要应用于Controller类,但不能应用于Action方法。
[Area("dashboard")]
public class Weblog : Controller
{
...
}
另外,请确保您已在中间件管道中添加区域路由。
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "Dashboard",
areaName: "Dashboard",
pattern: "dashboard/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
app.MapAreaControllerRoute(
name: "Dashboard",
areaName: "Dashboard",
pattern: "dashboard/{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");