使用Html.ActionLink将Asp.Net核心路由到区域控制器

时间:2019-03-22 10:18:42

标签: c# asp.net-core routing

我在Startup.cs中有这样的路由设置

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "areas",
                template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");

          routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

        });

和配置如下的控制器:

[Area("Pad")]
public class RequestsController : BaseController
{
    [HttpGet]
    public ActionResult Index()
    {
   ....
     }
}

在我的主页上,有一个指向该控制器的链接设置:

 @Html.ActionLink("PAD","Index","Requests",new{area="Pad"},null)

仅此将链接呈现为

<a href="/Pad/Requests">PAD</a>

控制器的实际网址似乎是

https://localhost:44358/Pad/Pad/Requests

我不知道该如何解决以及网址中多余的“ Pad”来自何处。谁能启发我。

1 个答案:

答案 0 :(得分:0)

万一其他人遇到这种奇怪的情况,我设法通过创建一个新项目并将所有代码添加到其中来解决这个问题。我以为这可以帮助我确定问题所在,但是问题就消失了!