动作不在asp.net core中调用

问题描述 投票:0回答:1

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();
        }
    }
}

我的索引操作工作正常,但我的 addweblog 不再被调用

动作名称与视图名称相同

此控制器位于区域中,而在此之前的其他控制器可以正常工作,但在这之后,当我添加任何控制器时,只需索引操作即可工作,为什么?

我清理解决方案,重新启动 Visual Studio,然后删除控制器并重制,但没有一个不工作

c# visual-studio asp.net-core action
1个回答
0
投票

Area
属性需要应用于Controller类,但不能应用于Action方法。

[Area("dashboard")]
public class Weblog : Controller
{
    ...
}

另外,请确保您已在中间件管道中添加区域路由。

对于 ASP.NET Core 版本 6 以下

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "Dashboard",
        pattern: "dashboard/{controller=Home}/{action=Index}/{id?}");

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

适用于 ASP.NET Core 6 或以上版本

app.MapControllerRoute(
    name: "Dashboard",
    pattern: "dashboard/{controller=Home}/{action=Index}/{id?}");

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
© www.soinside.com 2019 - 2024. All rights reserved.