如何在URL ASP.NET MVC中隐藏/删除“区域”名称(ASP.NET Core)

时间:2018-09-24 09:53:36

标签: asp.net-core-2.0 asp.net-mvc-areas

我已经根据用户角色使用“区域”创建了一个应用程序。有3个区域:管理员,批准者和提交者。如果单击链接,则其在URL中显示区域名称。我不想在URL中显示区域名称。如何实现呢? (带有ASP.NETCORE的MVC)

1 个答案:

答案 0 :(得分:0)

通常,您不应从生成的URL中删除Area NameArea Name用于指示在哪里可以找到控制器。例如,如果您遵循Areas in ASP.NET Core,则在不同的HomeController中它将有多个不同的Area。没有区域名称,它将无法使用Home/Index重定向到特定控制器。

要更改区域中控制器的路由,这也会生成不带区域名称的URL,可以尝试使用Route属性。

例如,我有一个AdminController[Route("AdminIndex")]

    [Area("Admin")]
public class AdminController : Controller
{
    [Route("AdminIndex")]
    public IActionResult Index()
    {
        return View();
    }
}

URL的代码。

<a asp-area="Admin" asp-controller="Admin" asp-action="Index">Admin Index</a>

URL结果。

<a href="/Index">Admin Index</a>